{
  "id": "lfj",
  "title": "LFJ",
  "chainId": 43114,
  "version": "LFJ Liquidity Book v2.2, V2_2=3",
  "sources": [
    "https://developers.lfj.gg/deployment-addresses/avalanche",
    "https://github.com/lfj-gg/joe-v2/blob/067c6ccf5b8ff1526d03fa3e4c65ec45d01c1f73/src/interfaces/ILBRouter.sol",
    "https://developers.lfj.gg/guides/swap-tokens"
  ],
  "observed": {
    "blockNumber": 94602778,
    "blockHash": "0x73dbd02de31d1c367570156997c0680bf86d50d4479898477c77e948c7f51014",
    "timestamp": 1788689764
  },
  "contracts": [
    {
      "role": "factory",
      "address": "0xb43120c4745967fa9b93E79C149E66B0f2D6Fe0c",
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "feeRecipient",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "initialOwner",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "flashLoanFee",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "name": "AccessControlBadConfirmation",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "neededRole",
              "type": "bytes32"
            }
          ],
          "name": "AccessControlUnauthorizedAccount",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            }
          ],
          "name": "EnumerableMapNonexistentKey",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBFactory__AddressZero",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__BinStepHasNoPreset",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__BinStepTooLow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBFactory__CannotGrantDefaultAdminRole",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "fees",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxFees",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__FlashLoanFeeAboveMax",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "token",
              "type": "address"
            }
          ],
          "name": "LBFactory__IdenticalAddresses",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBFactory__ImplementationNotSet",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBFactory__InvalidHooksParameters",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_binStep",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__LBPairAlreadyExists",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__LBPairDoesNotExist",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBFactory__LBPairIgnoredIsAlreadyInTheSameState",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__LBPairNotCreated",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "LBPairImplementation",
              "type": "address"
            }
          ],
          "name": "LBFactory__LBPairSafetyCheckFailed",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "user",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__PresetIsLockedForUsers",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBFactory__PresetOpenStateIsAlreadyInTheSameState",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "quoteAsset",
              "type": "address"
            }
          ],
          "name": "LBFactory__QuoteAssetAlreadyWhitelisted",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "quoteAsset",
              "type": "address"
            }
          ],
          "name": "LBFactory__QuoteAssetNotWhitelisted",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "feeRecipient",
              "type": "address"
            }
          ],
          "name": "LBFactory__SameFeeRecipient",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "flashLoanFee",
              "type": "uint256"
            }
          ],
          "name": "LBFactory__SameFlashLoanFee",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "hooksImplementation",
              "type": "address"
            }
          ],
          "name": "LBFactory__SameHooksImplementation",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "hooksParameters",
              "type": "bytes32"
            }
          ],
          "name": "LBFactory__SameHooksParameters",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "LBPairImplementation",
              "type": "address"
            }
          ],
          "name": "LBFactory__SameImplementation",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            }
          ],
          "name": "OwnableInvalidOwner",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "OwnableUnauthorizedAccount",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "PairParametersHelper__InvalidParameter",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "SafeCast__Exceeds16Bits",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "x",
              "type": "uint256"
            },
            {
              "internalType": "int256",
              "name": "y",
              "type": "int256"
            }
          ],
          "name": "Uint128x128Math__PowUnderflow",
          "type": "error"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "oldRecipient",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "address",
              "name": "newRecipient",
              "type": "address"
            }
          ],
          "name": "FeeRecipientSet",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "oldFlashLoanFee",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "newFlashLoanFee",
              "type": "uint256"
            }
          ],
          "name": "FlashLoanFeeSet",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "contract ILBPair",
              "name": "LBPair",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "pid",
              "type": "uint256"
            }
          ],
          "name": "LBPairCreated",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "contract ILBPair",
              "name": "LBPair",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bool",
              "name": "ignored",
              "type": "bool"
            }
          ],
          "name": "LBPairIgnoredStateChanged",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "oldLBPairImplementation",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "address",
              "name": "LBPairImplementation",
              "type": "address"
            }
          ],
          "name": "LBPairImplementationSet",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferStarted",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            },
            {
              "indexed": true,
              "internalType": "bool",
              "name": "isOpen",
              "type": "bool"
            }
          ],
          "name": "PresetOpenStateChanged",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "PresetRemoved",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "baseFactor",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "filterPeriod",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "decayPeriod",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "reductionFactor",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "variableFeeControl",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "protocolShare",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "maxVolatilityAccumulator",
              "type": "uint256"
            }
          ],
          "name": "PresetSet",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "contract IERC20",
              "name": "quoteAsset",
              "type": "address"
            }
          ],
          "name": "QuoteAssetAdded",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "contract IERC20",
              "name": "quoteAsset",
              "type": "address"
            }
          ],
          "name": "QuoteAssetRemoved",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "previousAdminRole",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "newAdminRole",
              "type": "bytes32"
            }
          ],
          "name": "RoleAdminChanged",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            }
          ],
          "name": "RoleGranted",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            }
          ],
          "name": "RoleRevoked",
          "type": "event"
        },
        {
          "inputs": [],
          "name": "DEFAULT_ADMIN_ROLE",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "LB_HOOKS_MANAGER_ROLE",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "acceptOwnership",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "quoteAsset",
              "type": "address"
            }
          ],
          "name": "addQuoteAsset",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "activeId",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            }
          ],
          "name": "createLBPair",
          "outputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            }
          ],
          "name": "forceDecay",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getAllBinSteps",
          "outputs": [
            {
              "internalType": "uint256[]",
              "name": "binStepWithPreset",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            }
          ],
          "name": "getAllLBPairs",
          "outputs": [
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "binStep",
                  "type": "uint16"
                },
                {
                  "internalType": "contract ILBPair",
                  "name": "LBPair",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "createdByOwner",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "ignoredForRouting",
                  "type": "bool"
                }
              ],
              "internalType": "struct ILBFactory.LBPairInformation[]",
              "name": "lbPairsAvailable",
              "type": "tuple[]"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFeeRecipient",
          "outputs": [
            {
              "internalType": "address",
              "name": "feeRecipient",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFlashLoanFee",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "flashLoanFee",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "index",
              "type": "uint256"
            }
          ],
          "name": "getLBPairAtIndex",
          "outputs": [
            {
              "internalType": "contract ILBPair",
              "name": "lbPair",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getLBPairImplementation",
          "outputs": [
            {
              "internalType": "address",
              "name": "lbPairImplementation",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenA",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenB",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "getLBPairInformation",
          "outputs": [
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "binStep",
                  "type": "uint16"
                },
                {
                  "internalType": "contract ILBPair",
                  "name": "LBPair",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "createdByOwner",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "ignoredForRouting",
                  "type": "bool"
                }
              ],
              "internalType": "struct ILBFactory.LBPairInformation",
              "name": "lbPairInformation",
              "type": "tuple"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getMaxFlashLoanFee",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "maxFee",
              "type": "uint256"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getMinBinStep",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "minBinStep",
              "type": "uint256"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getNumberOfLBPairs",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "lbPairNumber",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getNumberOfQuoteAssets",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "numberOfQuoteAssets",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getOpenBinSteps",
          "outputs": [
            {
              "internalType": "uint256[]",
              "name": "openBinStep",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "getPreset",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "baseFactor",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "filterPeriod",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "decayPeriod",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reductionFactor",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "variableFeeControl",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "protocolShare",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxVolatilityAccumulator",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "isOpen",
              "type": "bool"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "index",
              "type": "uint256"
            }
          ],
          "name": "getQuoteAssetAtIndex",
          "outputs": [
            {
              "internalType": "contract IERC20",
              "name": "asset",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            }
          ],
          "name": "getRoleAdmin",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "grantRole",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "hasRole",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "token",
              "type": "address"
            }
          ],
          "name": "isQuoteAsset",
          "outputs": [
            {
              "internalType": "bool",
              "name": "isQuote",
              "type": "bool"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "owner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "pendingOwner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            }
          ],
          "name": "removeLBHooksOnPair",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            }
          ],
          "name": "removePreset",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "quoteAsset",
              "type": "address"
            }
          ],
          "name": "removeQuoteAsset",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "renounceOwnership",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "callerConfirmation",
              "type": "address"
            }
          ],
          "name": "renounceRole",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "role",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "revokeRole",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "feeRecipient",
              "type": "address"
            }
          ],
          "name": "setFeeRecipient",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "baseFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "filterPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "decayPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "reductionFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "variableFeeControl",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "protocolShare",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "maxVolatilityAccumulator",
              "type": "uint24"
            }
          ],
          "name": "setFeesParametersOnPair",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "flashLoanFee",
              "type": "uint256"
            }
          ],
          "name": "setFlashLoanFee",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "bytes32",
              "name": "hooksParameters",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "onHooksSetData",
              "type": "bytes"
            }
          ],
          "name": "setLBHooksParametersOnPair",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "bool",
              "name": "ignored",
              "type": "bool"
            }
          ],
          "name": "setLBPairIgnored",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "newLBPairImplementation",
              "type": "address"
            }
          ],
          "name": "setLBPairImplementation",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "baseFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "filterPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "decayPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "reductionFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "variableFeeControl",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "protocolShare",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "maxVolatilityAccumulator",
              "type": "uint24"
            },
            {
              "internalType": "bool",
              "name": "isOpen",
              "type": "bool"
            }
          ],
          "name": "setPreset",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "bool",
              "name": "isOpen",
              "type": "bool"
            }
          ],
          "name": "setPresetOpenState",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes4",
              "name": "interfaceId",
              "type": "bytes4"
            }
          ],
          "name": "supportsInterface",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "transferOwnership",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "codeHash": "0x24760bc3bcdceb37006bed0ee363ff2f93f79242e14c19dcd135d606cad3d249",
      "codeBytes": 12021,
      "implementation": null,
      "implementationCodeHash": null,
      "abiSourceAddress": "0xb43120c4745967fa9b93E79C149E66B0f2D6Fe0c",
      "sources": [
        "https://developers.lfj.gg/deployment-addresses/avalanche",
        "https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan/api?module=contract&action=getabi&address=0xb43120c4745967fa9b93E79C149E66B0f2D6Fe0c"
      ]
    },
    {
      "role": "router",
      "address": "0x18556DA13313f3532c54711497A8FedAC273220E",
      "abi": [
        {
          "inputs": [
            {
              "internalType": "contract ILBFactory",
              "name": "factory2_2",
              "type": "address"
            },
            {
              "internalType": "contract IJoeFactory",
              "name": "factoryV1",
              "type": "address"
            },
            {
              "internalType": "contract ILBLegacyFactory",
              "name": "legacyFactory",
              "type": "address"
            },
            {
              "internalType": "contract ILBLegacyRouter",
              "name": "legacyRouter",
              "type": "address"
            },
            {
              "internalType": "contract ILBFactory",
              "name": "factory2_1",
              "type": "address"
            },
            {
              "internalType": "contract IWNATIVE",
              "name": "wnative",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "name": "JoeLibrary__InsufficientAmount",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "JoeLibrary__InsufficientLiquidity",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountSlippage",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__AmountSlippageBPTooBig",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountXMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountX",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountYMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountY",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__AmountSlippageCaught",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__BinReserveOverflows",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBRouter__BrokenSwapSafetyCheck",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "currentTimestamp",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__DeadlineExceeded",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__FailedToSendNATIVE",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "idDesired",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "idSlippage",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__IdDesiredOverflows",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "int256",
              "name": "id",
              "type": "int256"
            }
          ],
          "name": "LBRouter__IdOverflows",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "activeIdDesired",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "idSlippage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "activeId",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__IdSlippageCaught",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountOutMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__InsufficientAmountOut",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "wrongToken",
              "type": "address"
            }
          ],
          "name": "LBRouter__InvalidTokenPath",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "version",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__InvalidVersion",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBRouter__LengthsMismatch",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountInMax",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountIn",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__MaxAmountInExceeded",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBRouter__NotFactoryOwner",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "binStep",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__PairNotCreated",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBRouter__SenderIsNotWNATIVE",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__SwapOverflows",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "excess",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__TooMuchTokensIn",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserve",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__WrongAmounts",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amountX",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountY",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "msgValue",
              "type": "uint256"
            }
          ],
          "name": "LBRouter__WrongNativeLiquidityParameters",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBRouter__WrongTokenOrder",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "PackedUint128Math__SubUnderflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "TokenHelper__TransferFailed",
          "type": "error"
        },
        {
          "inputs": [
            {
              "components": [
                {
                  "internalType": "contract IERC20",
                  "name": "tokenX",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "tokenY",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "binStep",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountX",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountY",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountXMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountYMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "activeIdDesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "idSlippage",
                  "type": "uint256"
                },
                {
                  "internalType": "int256[]",
                  "name": "deltaIds",
                  "type": "int256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "distributionX",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "distributionY",
                  "type": "uint256[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "refundTo",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "internalType": "struct ILBRouter.LiquidityParameters",
              "name": "liquidityParameters",
              "type": "tuple"
            }
          ],
          "name": "addLiquidity",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountXAdded",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountYAdded",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountXLeft",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountYLeft",
              "type": "uint256"
            },
            {
              "internalType": "uint256[]",
              "name": "depositIds",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "liquidityMinted",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "components": [
                {
                  "internalType": "contract IERC20",
                  "name": "tokenX",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "tokenY",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "binStep",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountX",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountY",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountXMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountYMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "activeIdDesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "idSlippage",
                  "type": "uint256"
                },
                {
                  "internalType": "int256[]",
                  "name": "deltaIds",
                  "type": "int256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "distributionX",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "distributionY",
                  "type": "uint256[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "refundTo",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "internalType": "struct ILBRouter.LiquidityParameters",
              "name": "liquidityParameters",
              "type": "tuple"
            }
          ],
          "name": "addLiquidityNATIVE",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountXAdded",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountYAdded",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountXLeft",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountYLeft",
              "type": "uint256"
            },
            {
              "internalType": "uint256[]",
              "name": "depositIds",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "liquidityMinted",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "activeId",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            }
          ],
          "name": "createLBPair",
          "outputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFactory",
          "outputs": [
            {
              "internalType": "contract ILBFactory",
              "name": "lbFactory",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFactoryV2_1",
          "outputs": [
            {
              "internalType": "contract ILBFactory",
              "name": "lbFactory",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            }
          ],
          "name": "getIdFromPrice",
          "outputs": [
            {
              "internalType": "uint24",
              "name": "",
              "type": "uint24"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getLegacyFactory",
          "outputs": [
            {
              "internalType": "contract ILBLegacyFactory",
              "name": "legacyLBfactory",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getLegacyRouter",
          "outputs": [
            {
              "internalType": "contract ILBLegacyRouter",
              "name": "legacyRouter",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "getPriceFromId",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            },
            {
              "internalType": "uint128",
              "name": "amountOut",
              "type": "uint128"
            },
            {
              "internalType": "bool",
              "name": "swapForY",
              "type": "bool"
            }
          ],
          "name": "getSwapIn",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "amountIn",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "amountOutLeft",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "fee",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBPair",
              "name": "pair",
              "type": "address"
            },
            {
              "internalType": "uint128",
              "name": "amountIn",
              "type": "uint128"
            },
            {
              "internalType": "bool",
              "name": "swapForY",
              "type": "bool"
            }
          ],
          "name": "getSwapOut",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "amountInLeft",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "amountOut",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "fee",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getV1Factory",
          "outputs": [
            {
              "internalType": "contract IJoeFactory",
              "name": "factoryV1",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getWNATIVE",
          "outputs": [
            {
              "internalType": "contract IWNATIVE",
              "name": "wnative",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "uint256",
              "name": "amountXMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountYMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "removeLiquidity",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountX",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountY",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "binStep",
              "type": "uint16"
            },
            {
              "internalType": "uint256",
              "name": "amountTokenMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountNATIVEMin",
              "type": "uint256"
            },
            {
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            },
            {
              "internalType": "address payable",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "removeLiquidityNATIVE",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountToken",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountNATIVE",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountOutMin",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapExactNATIVEForTokens",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountOutMin",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapExactNATIVEForTokensSupportingFeeOnTransferTokens",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountIn",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountOutMinNATIVE",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address payable",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapExactTokensForNATIVE",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountIn",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountOutMinNATIVE",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address payable",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapExactTokensForNATIVESupportingFeeOnTransferTokens",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountIn",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountOutMin",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapExactTokensForTokens",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountIn",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountOutMin",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapNATIVEForExactTokens",
          "outputs": [
            {
              "internalType": "uint256[]",
              "name": "amountsIn",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountNATIVEOut",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountInMax",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address payable",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapTokensForExactNATIVE",
          "outputs": [
            {
              "internalType": "uint256[]",
              "name": "amountsIn",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountOut",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountInMax",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256[]",
                  "name": "pairBinSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "contract IERC20[]",
                  "name": "tokenPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct ILBRouter.Path",
              "name": "path",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            }
          ],
          "name": "swapTokensForExactTokens",
          "outputs": [
            {
              "internalType": "uint256[]",
              "name": "amountsIn",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "sweep",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBToken",
              "name": "lbToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "name": "sweepLBToken",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "stateMutability": "payable",
          "type": "receive"
        }
      ],
      "codeHash": "0xa8ae69689a904932bb9895e9c1ee6e0b3bc8715e6a04793d3134fda8103a5cd7",
      "codeBytes": 20910,
      "implementation": null,
      "implementationCodeHash": null,
      "abiSourceAddress": "0x18556DA13313f3532c54711497A8FedAC273220E",
      "sources": [
        "https://developers.lfj.gg/deployment-addresses/avalanche",
        "https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan/api?module=contract&action=getabi&address=0x18556DA13313f3532c54711497A8FedAC273220E"
      ]
    },
    {
      "role": "quoter",
      "address": "0x9A550a522BBaDFB69019b0432800Ed17855A51C3",
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "factoryV1",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "legacyFactoryV2",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "factoryV2_1",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "factoryV2_2",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "legacyRouterV2",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "routerV2_1",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "routerV2_2",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "name": "JoeLibrary__AddressZero",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "JoeLibrary__IdenticalAddresses",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "JoeLibrary__InsufficientAmount",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "JoeLibrary__InsufficientLiquidity",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBQuoter_InvalidLength",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "SafeCast__Exceeds128Bits",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "SafeCast__Exceeds24Bits",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "x",
              "type": "uint256"
            },
            {
              "internalType": "int256",
              "name": "y",
              "type": "int256"
            }
          ],
          "name": "Uint128x128Math__PowUnderflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "Uint256x256Math__MulDivOverflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "Uint256x256Math__MulShiftOverflow",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "route",
              "type": "address[]"
            },
            {
              "internalType": "uint128",
              "name": "amountIn",
              "type": "uint128"
            }
          ],
          "name": "findBestPathFromAmountIn",
          "outputs": [
            {
              "components": [
                {
                  "internalType": "address[]",
                  "name": "route",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "pairs",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "binSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "uint128[]",
                  "name": "amounts",
                  "type": "uint128[]"
                },
                {
                  "internalType": "uint128[]",
                  "name": "virtualAmountsWithoutSlippage",
                  "type": "uint128[]"
                },
                {
                  "internalType": "uint128[]",
                  "name": "fees",
                  "type": "uint128[]"
                }
              ],
              "internalType": "struct LBQuoter.Quote",
              "name": "quote",
              "type": "tuple"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "route",
              "type": "address[]"
            },
            {
              "internalType": "uint128",
              "name": "amountOut",
              "type": "uint128"
            }
          ],
          "name": "findBestPathFromAmountOut",
          "outputs": [
            {
              "components": [
                {
                  "internalType": "address[]",
                  "name": "route",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "pairs",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "binSteps",
                  "type": "uint256[]"
                },
                {
                  "internalType": "enum ILBRouter.Version[]",
                  "name": "versions",
                  "type": "uint8[]"
                },
                {
                  "internalType": "uint128[]",
                  "name": "amounts",
                  "type": "uint128[]"
                },
                {
                  "internalType": "uint128[]",
                  "name": "virtualAmountsWithoutSlippage",
                  "type": "uint128[]"
                },
                {
                  "internalType": "uint128[]",
                  "name": "fees",
                  "type": "uint128[]"
                }
              ],
              "internalType": "struct LBQuoter.Quote",
              "name": "quote",
              "type": "tuple"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFactoryV1",
          "outputs": [
            {
              "internalType": "address",
              "name": "factoryV1",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFactoryV2_1",
          "outputs": [
            {
              "internalType": "address",
              "name": "factoryV2_1",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFactoryV2_2",
          "outputs": [
            {
              "internalType": "address",
              "name": "factoryV2_2",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getLegacyFactoryV2",
          "outputs": [
            {
              "internalType": "address",
              "name": "legacyFactoryV2",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getLegacyRouterV2",
          "outputs": [
            {
              "internalType": "address",
              "name": "legacyRouterV2",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getRouterV2_1",
          "outputs": [
            {
              "internalType": "address",
              "name": "routerV2_1",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getRouterV2_2",
          "outputs": [
            {
              "internalType": "address",
              "name": "routerV2_2",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "codeHash": "0x569158d9db523d102e09fed348c020db9932f9b2771dffea1bd9a68bff18f162",
      "codeBytes": 18102,
      "implementation": null,
      "implementationCodeHash": null,
      "abiSourceAddress": "0x9A550a522BBaDFB69019b0432800Ed17855A51C3",
      "sources": [
        "https://developers.lfj.gg/deployment-addresses/avalanche",
        "https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan/api?module=contract&action=getabi&address=0x9A550a522BBaDFB69019b0432800Ed17855A51C3"
      ]
    },
    {
      "role": "pair",
      "address": "0x864d4e5Ee7318e97483DB7EB0912E09F161516EA",
      "abi": [
        {
          "inputs": [
            {
              "internalType": "contract ILBFactory",
              "name": "factory_",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "BinHelper__CompositionFactorFlawed",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "BinHelper__LiquidityOverflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "BinHelper__MaxLiquidityPerBinExceeded",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "FeeHelper__FeeTooLarge",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "Hooks__CallFailed",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "InvalidInitialization",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__AddressZero",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__EmptyMarketConfigs",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__FlashLoanCallbackFailed",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__FlashLoanInsufficientAmount",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__InsufficientAmountIn",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__InsufficientAmountOut",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__InvalidHooks",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__InvalidInput",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__InvalidStaticFeeParameters",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__MaxTotalFeeExceeded",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__OnlyFactory",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__OnlyProtocolFeeRecipient",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__OutOfLiquidity",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__TokenNotSupported",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "LBPair__ZeroAmount",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "LBPair__ZeroAmountsOut",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBPair__ZeroBorrowAmount",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "LBPair__ZeroShares",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBToken__AddressThisOrZero",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "LBToken__BurnExceedsBalance",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LBToken__InvalidLength",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            }
          ],
          "name": "LBToken__SelfApproval",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "spender",
              "type": "address"
            }
          ],
          "name": "LBToken__SpenderNotApproved",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "LBToken__TransferExceedsBalance",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "LiquidityConfigurations__InvalidConfig",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "NotInitializing",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "OracleHelper__InvalidOracleId",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "OracleHelper__LookUpTimestampTooOld",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "OracleHelper__NewLengthTooSmall",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "PackedUint128Math__AddOverflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "PackedUint128Math__MultiplierTooLarge",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "PackedUint128Math__SubUnderflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "PairParametersHelper__InvalidParameter",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "ReentrancyGuardReentrantCall",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "SafeCast__Exceeds128Bits",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "SafeCast__Exceeds24Bits",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "SafeCast__Exceeds40Bits",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "TokenHelper__TransferFailed",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "Uint128x128Math__LogUnderflow",
          "type": "error"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "x",
              "type": "uint256"
            },
            {
              "internalType": "int256",
              "name": "y",
              "type": "int256"
            }
          ],
          "name": "Uint128x128Math__PowUnderflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "Uint256x256Math__MulDivOverflow",
          "type": "error"
        },
        {
          "inputs": [],
          "name": "Uint256x256Math__MulShiftOverflow",
          "type": "error"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bool",
              "name": "approved",
              "type": "bool"
            }
          ],
          "name": "ApprovalForAll",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "feeRecipient",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "protocolFees",
              "type": "bytes32"
            }
          ],
          "name": "CollectedProtocolFees",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "totalFees",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "protocolFees",
              "type": "bytes32"
            }
          ],
          "name": "CompositionFees",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "indexed": false,
              "internalType": "bytes32[]",
              "name": "amounts",
              "type": "bytes32[]"
            }
          ],
          "name": "DepositedToBins",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "contract ILBFlashLoanCallback",
              "name": "receiver",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "activeId",
              "type": "uint24"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "amounts",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "totalFees",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "protocolFees",
              "type": "bytes32"
            }
          ],
          "name": "FlashLoan",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "idReference",
              "type": "uint24"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "volatilityReference",
              "type": "uint24"
            }
          ],
          "name": "ForcedDecay",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "hooksParameters",
              "type": "bytes32"
            }
          ],
          "name": "HooksParametersSet",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint64",
              "name": "version",
              "type": "uint64"
            }
          ],
          "name": "Initialized",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint16",
              "name": "oracleLength",
              "type": "uint16"
            }
          ],
          "name": "OracleLengthIncreased",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint16",
              "name": "baseFactor",
              "type": "uint16"
            },
            {
              "indexed": false,
              "internalType": "uint16",
              "name": "filterPeriod",
              "type": "uint16"
            },
            {
              "indexed": false,
              "internalType": "uint16",
              "name": "decayPeriod",
              "type": "uint16"
            },
            {
              "indexed": false,
              "internalType": "uint16",
              "name": "reductionFactor",
              "type": "uint16"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "variableFeeControl",
              "type": "uint24"
            },
            {
              "indexed": false,
              "internalType": "uint16",
              "name": "protocolShare",
              "type": "uint16"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "maxVolatilityAccumulator",
              "type": "uint24"
            }
          ],
          "name": "StaticFeeParametersSet",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "amountsIn",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "amountsOut",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint24",
              "name": "volatilityAccumulator",
              "type": "uint24"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "totalFees",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "protocolFees",
              "type": "bytes32"
            }
          ],
          "name": "Swap",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "indexed": false,
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "name": "TransferBatch",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "indexed": false,
              "internalType": "bytes32[]",
              "name": "amounts",
              "type": "bytes32[]"
            }
          ],
          "name": "WithdrawnFromBins",
          "type": "event"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "approved",
              "type": "bool"
            }
          ],
          "name": "approveForAll",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "name": "balanceOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "accounts",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            }
          ],
          "name": "balanceOfBatch",
          "outputs": [
            {
              "internalType": "uint256[]",
              "name": "batchBalances",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "name": "batchTransferFrom",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256[]",
              "name": "ids",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amountsToBurn",
              "type": "uint256[]"
            }
          ],
          "name": "burn",
          "outputs": [
            {
              "internalType": "bytes32[]",
              "name": "amounts",
              "type": "bytes32[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "collectProtocolFees",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "collectedProtocolFees",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "contract ILBFlashLoanCallback",
              "name": "receiver",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "amounts",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "name": "flashLoan",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "forceDecay",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getActiveId",
          "outputs": [
            {
              "internalType": "uint24",
              "name": "activeId",
              "type": "uint24"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "getBin",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "binReserveX",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "binReserveY",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getBinStep",
          "outputs": [
            {
              "internalType": "uint16",
              "name": "",
              "type": "uint16"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getFactory",
          "outputs": [
            {
              "internalType": "contract ILBFactory",
              "name": "factory",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            }
          ],
          "name": "getIdFromPrice",
          "outputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getLBHooksParameters",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bool",
              "name": "swapForY",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "getNextNonEmptyBin",
          "outputs": [
            {
              "internalType": "uint24",
              "name": "nextId",
              "type": "uint24"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getOracleParameters",
          "outputs": [
            {
              "internalType": "uint8",
              "name": "sampleLifetime",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "size",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "activeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint40",
              "name": "lastUpdated",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "firstTimestamp",
              "type": "uint40"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint40",
              "name": "lookupTimestamp",
              "type": "uint40"
            }
          ],
          "name": "getOracleSampleAt",
          "outputs": [
            {
              "internalType": "uint64",
              "name": "cumulativeId",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "cumulativeVolatility",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "cumulativeBinCrossed",
              "type": "uint64"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint24",
              "name": "id",
              "type": "uint24"
            }
          ],
          "name": "getPriceFromId",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getProtocolFees",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "protocolFeeX",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "protocolFeeY",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getReserves",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "reserveX",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "reserveY",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getStaticFeeParameters",
          "outputs": [
            {
              "internalType": "uint16",
              "name": "baseFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "filterPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "decayPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "reductionFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "variableFeeControl",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "protocolShare",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "maxVolatilityAccumulator",
              "type": "uint24"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint128",
              "name": "amountOut",
              "type": "uint128"
            },
            {
              "internalType": "bool",
              "name": "swapForY",
              "type": "bool"
            }
          ],
          "name": "getSwapIn",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "amountIn",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "amountOutLeft",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "fee",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint128",
              "name": "amountIn",
              "type": "uint128"
            },
            {
              "internalType": "bool",
              "name": "swapForY",
              "type": "bool"
            }
          ],
          "name": "getSwapOut",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "amountInLeft",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "amountOut",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "fee",
              "type": "uint128"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getTokenX",
          "outputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenX",
              "type": "address"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getTokenY",
          "outputs": [
            {
              "internalType": "contract IERC20",
              "name": "tokenY",
              "type": "address"
            }
          ],
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "getVariableFeeParameters",
          "outputs": [
            {
              "internalType": "uint24",
              "name": "volatilityAccumulator",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "volatilityReference",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "idReference",
              "type": "uint24"
            },
            {
              "internalType": "uint40",
              "name": "timeOfLastUpdate",
              "type": "uint40"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "implementation",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "newLength",
              "type": "uint16"
            }
          ],
          "name": "increaseOracleLength",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "baseFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "filterPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "decayPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "reductionFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "variableFeeControl",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "protocolShare",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "maxVolatilityAccumulator",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "activeId",
              "type": "uint24"
            }
          ],
          "name": "initialize",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "spender",
              "type": "address"
            }
          ],
          "name": "isApprovedForAll",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "bytes32[]",
              "name": "liquidityConfigs",
              "type": "bytes32[]"
            },
            {
              "internalType": "address",
              "name": "refundTo",
              "type": "address"
            }
          ],
          "name": "mint",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "amountsReceived",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "amountsLeft",
              "type": "bytes32"
            },
            {
              "internalType": "uint256[]",
              "name": "liquidityMinted",
              "type": "uint256[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "name",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "hooksParameters",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "onHooksSetData",
              "type": "bytes"
            }
          ],
          "name": "setHooksParameters",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "baseFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "filterPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "decayPeriod",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "reductionFactor",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "variableFeeControl",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "protocolShare",
              "type": "uint16"
            },
            {
              "internalType": "uint24",
              "name": "maxVolatilityAccumulator",
              "type": "uint24"
            }
          ],
          "name": "setStaticFeeParameters",
          "outputs": [],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "bool",
              "name": "swapForY",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            }
          ],
          "name": "swap",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "amountsOut",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "inputs": [],
          "name": "symbol",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "name": "totalSupply",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "codeHash": "0x2ffcba81f6e50cdf070cab6e770cd5bedab1519a8b7bb7ce1afeecab379f2cec",
      "codeBytes": 97,
      "implementation": null,
      "implementationCodeHash": null,
      "abiSourceAddress": "0x7a5b4e301fc2B148ceFe57257A236EB845082797",
      "sources": [
        "https://developers.lfj.gg/deployment-addresses/avalanche",
        "https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan/api?module=contract&action=getabi&address=0x7a5b4e301fc2B148ceFe57257A236EB845082797"
      ]
    }
  ],
  "sourceCommit": "067c6ccf5b8ff1526d03fa3e4c65ec45d01c1f73"
}
