From 0a264aab18922c3c01bb860a7b53c7f32be872f9 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Tue, 28 Oct 2025 18:59:08 +0300 Subject: [PATCH 01/54] Handle empty switch state --- src/pages/Market.tsx | 15 ++++++------ src/pages/market/MarketModeSelect.tsx | 34 ++++++++++++++++++--------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 3973f9f4d..eb9e223f7 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -265,7 +265,7 @@ export function Market() { const handleSecondaryTabClick = useCallback( (v: string) => { if (v === "fill") { - handleChangeTab(!mode || mode === "buy" ? TABLE_SLUGS[1] : TABLE_SLUGS[2]); + handleChangeTab(mode === "buy" ? TABLE_SLUGS[1] : TABLE_SLUGS[2]); } }, [mode], @@ -282,7 +282,7 @@ export function Market() { event_status: dataPoint?.status?.toLowerCase() ?? "unknown", price_per_pod: dataPoint?.y ?? 0, place_in_line_millions: Math.floor(dataPoint?.x ?? -1), - current_mode: !mode || mode === "buy" ? "buy" : "sell", + current_mode: mode ?? "unknown", }); if (dataPoint.eventType === "LISTING") { @@ -292,8 +292,7 @@ export function Market() { } }; - const viewMode = !mode || mode === "buy" ? "buy" : "sell"; - const fillView = !!id; + const viewMode = mode; return ( <> @@ -343,10 +342,10 @@ export function Market() {
- {viewMode === "buy" && !fillView && } - {viewMode === "buy" && fillView && } - {viewMode === "sell" && !fillView && } - {viewMode === "sell" && fillView && } + {viewMode === "buy" && id === "create" && } + {viewMode === "buy" && id === "fill" && } + {viewMode === "sell" && id === "create" && } + {viewMode === "sell" && id === "fill" && }
diff --git a/src/pages/market/MarketModeSelect.tsx b/src/pages/market/MarketModeSelect.tsx index 49c0d0304..f1eb330f7 100644 --- a/src/pages/market/MarketModeSelect.tsx +++ b/src/pages/market/MarketModeSelect.tsx @@ -14,8 +14,8 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel const { mode, id } = useParams(); const navigate = useNavigate(); - const mainTab = !mode || mode === "buy" ? "buy" : "sell"; - const secondaryTab = !id || id === "create" ? "create" : "fill"; + const mainTab = mode === "buy" || mode === "sell" ? mode : undefined; + const secondaryTab = id === "fill" ? "fill" : id === "create" ? "create" : undefined; const handleMainChange = useCallback( (v: string) => { @@ -42,7 +42,7 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel }); if (v === "create") { - navigate(`/market/pods/${mainTab}`); + navigate(`/market/pods/${mainTab}/create`); } else if (v === "fill") { navigate(`/market/pods/${mainTab}/fill`); } @@ -53,19 +53,31 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel return (
- + Buy Pods Sell Pods - - - - {mainTab === "buy" ? "Order" : "List"} - Fill - - + {mainTab ? ( + <> + + + + {mainTab === "buy" ? "Order" : "List"} + Fill + + + + ) : ( +
+
+ Select Buy Pods +
+ or Sell Pods +
+
+ )}
); } From 3730250ab5a1c4eeb04bb93e8fa3cbb8efb89ea8 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Wed, 29 Oct 2025 02:13:06 +0300 Subject: [PATCH 02/54] Add sell action empty state --- src/pages/market/MarketModeSelect.tsx | 31 +++++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/pages/market/MarketModeSelect.tsx b/src/pages/market/MarketModeSelect.tsx index f1eb330f7..9824c08c9 100644 --- a/src/pages/market/MarketModeSelect.tsx +++ b/src/pages/market/MarketModeSelect.tsx @@ -1,6 +1,7 @@ import { Separator } from "@/components/ui/Separator"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/Tabs"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; +import { useFarmerField } from "@/state/useFarmerField"; import { trackSimpleEvent } from "@/utils/analytics"; import { useCallback } from "react"; import { useNavigate, useParams, useSearchParams } from "react-router-dom"; @@ -13,9 +14,11 @@ interface MarketModeSelectProps { export default function MarketModeSelect({ onMainSelectionChange, onSecondarySelectionChange }: MarketModeSelectProps) { const { mode, id } = useParams(); const navigate = useNavigate(); + const farmerField = useFarmerField(); const mainTab = mode === "buy" || mode === "sell" ? mode : undefined; const secondaryTab = id === "fill" ? "fill" : id === "create" ? "create" : undefined; + const hasNoPods = farmerField.plots.length === 0; const handleMainChange = useCallback( (v: string) => { @@ -61,13 +64,27 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel {mainTab ? ( <> - - - - {mainTab === "buy" ? "Order" : "List"} - Fill - - + {mainTab === "sell" && hasNoPods ? ( + <> + +
+
+ You have no Pods. You can get Pods by placing a bid on the Field or selecting{" "} + Buy Pods! +
+
+ + ) : ( + <> + + + + {mainTab === "buy" ? "Order" : "List"} + Fill + + + + )} ) : (
From fb570dcfdc3bf518d0f60271b81de55d536193ed Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Wed, 29 Oct 2025 18:00:23 +0300 Subject: [PATCH 03/54] Add PodLineGraph component --- src/components/PodLineGraph.tsx | 479 +++++++++++++++++++++ src/pages/market/actions/CreateListing.tsx | 32 +- 2 files changed, 510 insertions(+), 1 deletion(-) create mode 100644 src/components/PodLineGraph.tsx diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx new file mode 100644 index 000000000..59fc247fc --- /dev/null +++ b/src/components/PodLineGraph.tsx @@ -0,0 +1,479 @@ +import { TokenValue } from "@/classes/TokenValue"; +import { PODS } from "@/constants/internalTokens"; +import { useFarmerField } from "@/state/useFarmerField"; +import { useHarvestableIndex, usePodIndex } from "@/state/useFieldData"; +import { formatter } from "@/utils/format"; +import { Plot } from "@/utils/types"; +import { cn } from "@/utils/utils"; +import { useMemo, useState } from "react"; + +// Layout constants +const HARVESTED_WIDTH_PERCENT = 20; +const PODLINE_WIDTH_PERCENT = 80; +const MIN_PLOT_WIDTH_PERCENT = 0.3; // Minimum plot width for clickability +const MAX_GAP_TO_COMBINE = TokenValue.fromHuman("1000000", PODS.decimals); // Combine plots within 1M gap for visual grouping + +interface CombinedPlot { + startIndex: TokenValue; + endIndex: TokenValue; + totalPods: TokenValue; + plots: Plot[]; + isHarvestable: boolean; + isSelected: boolean; +} + +interface PodLineGraphProps { + /** Optional: provide specific plots (if not provided, uses all farmer plots) */ + plots?: Plot[]; + /** Indices of selected plots */ + selectedPlotIndices?: string[]; + /** Callback when a plot group is clicked - receives all plot indices in the group */ + onPlotGroupSelect?: (plotIndices: string[]) => void; + /** Additional CSS classes */ + className?: string; +} + +/** + * Groups nearby plots for visual display while keeping each plot individually interactive + */ +function combinePlots( + plots: Plot[], + harvestableIndex: TokenValue, + selectedIndices: Set, +): CombinedPlot[] { + if (plots.length === 0) return []; + + // Sort plots by index + const sortedPlots = [...plots].sort((a, b) => a.index.sub(b.index).toNumber()); + + const combined: CombinedPlot[] = []; + let currentGroup: Plot[] = []; + + for (let i = 0; i < sortedPlots.length; i++) { + const plot = sortedPlots[i]; + const nextPlot = sortedPlots[i + 1]; + + currentGroup.push(plot); + + if (nextPlot) { + // Calculate gap between this plot's end and next plot's start + const gap = nextPlot.index.sub(plot.index.add(plot.pods)); + + // If gap is small enough, continue grouping + if (gap.lt(MAX_GAP_TO_COMBINE)) { + continue; + } + } + + // Finalize current group (gap is too large or it's the last plot) + if (currentGroup.length > 0) { + const startIndex = currentGroup[0].index; + const lastPlot = currentGroup[currentGroup.length - 1]; + const endIndex = lastPlot.index.add(lastPlot.pods); + const totalPods = currentGroup.reduce((sum, p) => sum.add(p.pods), TokenValue.ZERO); + + // Check if any plot in group is harvestable or selected + const isHarvestable = currentGroup.some( + (p) => p.harvestablePods?.gt(0) || endIndex.lte(harvestableIndex), + ); + const isSelected = currentGroup.some((p) => selectedIndices.has(p.index.toHuman())); + + combined.push({ + startIndex, + endIndex, + totalPods, + plots: currentGroup, + isHarvestable, + isSelected, + }); + + currentGroup = []; + } + } + + return combined; +} + +/** + * Generates nice axis labels at 10M intervals + */ +function generateAxisLabels(min: number, max: number): number[] { + const INTERVAL = 10_000_000; // 10M + const labels: number[] = []; + + // Start from 0 or the first 10M multiple + const start = Math.floor(min / INTERVAL) * INTERVAL; + + for (let value = start; value <= max; value += INTERVAL) { + if (value >= min) { + labels.push(value); + } + } + + return labels; +} + +/** + * Generates logarithmic grid points for harvested section + * Creates 2-3 evenly distributed points in log space + */ +function generateLogGridPoints(maxValue: number): number[] { + if (maxValue <= 0) return []; + + const gridPoints: number[] = []; + const million = 1_000_000; + const minValue = maxValue / 10; + + // For values less than 10M, use simple 1M, 2M, 5M pattern + if (maxValue <= 10 * million) { + if (maxValue > 1 * million && 1 * million > minValue) gridPoints.push(1 * million); + if (maxValue > 2 * million && 2 * million > minValue) gridPoints.push(2 * million); + if (maxValue > 5 * million && 5 * million > minValue) gridPoints.push(5 * million); + return gridPoints; + } + + // For larger values, use powers of 10 + let power = million; + while (power < maxValue) { + if (power > minValue) gridPoints.push(power); + const next2 = power * 2; + const next5 = power * 5; + if (next2 < maxValue && next2 > minValue) gridPoints.push(next2); + if (next5 < maxValue && next5 > minValue) gridPoints.push(next5); + power *= 10; + } + + return gridPoints.sort((a, b) => a - b); +} + +/** + * Formats large numbers for axis labels (e.g., 1000000 -> "1M") + */ +function formatAxisLabel(value: number): string { + if (value >= 1_000_000) { + return `${(value / 1_000_000).toFixed(0)}M`; + } + if (value >= 1_000) { + return `${(value / 1_000).toFixed(0)}K`; + } + return value.toFixed(0); +} + +export default function PodLineGraph({ + plots: providedPlots, + selectedPlotIndices = [], + onPlotGroupSelect, + className, +}: PodLineGraphProps) { + const farmerField = useFarmerField(); + const harvestableIndex = useHarvestableIndex(); + const podIndex = usePodIndex(); + + const [hoveredPlotIndex, setHoveredPlotIndex] = useState(null); + + // Use provided plots or default to farmer's plots + const plots = providedPlots ?? farmerField.plots; + + // Calculate pod line (total unharvested pods) + const podLine = podIndex.sub(harvestableIndex); + + // Selected indices set for quick lookup + const selectedSet = useMemo(() => new Set(selectedPlotIndices), [selectedPlotIndices]); + + // Combine plots for visualization + const combinedPlots = useMemo( + () => combinePlots(plots, harvestableIndex, selectedSet), + [plots, harvestableIndex, selectedSet], + ); + + // Separate harvested and unharvested plots + const { harvestedPlots, unharvestedPlots } = useMemo(() => { + const harvested: CombinedPlot[] = []; + const unharvested: CombinedPlot[] = []; + + combinedPlots.forEach((plot) => { + if (plot.endIndex.lte(harvestableIndex)) { + // Fully harvested + harvested.push(plot); + } else if (plot.startIndex.lt(harvestableIndex)) { + // Partially harvested - split it + const harvestedAmount = harvestableIndex.sub(plot.startIndex); + const unharvestedAmount = plot.endIndex.sub(harvestableIndex); + + harvested.push({ + ...plot, + endIndex: harvestableIndex, + totalPods: harvestedAmount, + isHarvestable: true, + }); + + unharvested.push({ + ...plot, + startIndex: harvestableIndex, + totalPods: unharvestedAmount, + }); + } else { + // Fully unharvested + unharvested.push(plot); + } + }); + + return { harvestedPlots: harvested, unharvestedPlots: unharvested }; + }, [combinedPlots, harvestableIndex]); + + // Calculate max harvested index for log scale + const maxHarvestedIndex = harvestableIndex.gt(0) ? harvestableIndex.toNumber() : 1; + + // Check if there are any harvested plots + const hasHarvestedPlots = harvestedPlots.length > 0; + + // Adjust width percentages based on whether we have harvested plots + const harvestedWidthPercent = hasHarvestedPlots ? HARVESTED_WIDTH_PERCENT : 0; + const podlineWidthPercent = hasHarvestedPlots ? PODLINE_WIDTH_PERCENT : 100; + + return ( +
+ {/* Plot container with border */} +
+
+ {/* Harvested Section (Log Scale) - Left 20% (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ {/* Grid lines (exponential scale) */} +
+ {generateLogGridPoints(maxHarvestedIndex).map((value) => { + // Exponential scale: small values compressed to the left, large values spread to the right + const minValue = maxHarvestedIndex / 10; + const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); + + // Apply exponential transformation: position = (e^(k*x) - 1) / (e^k - 1) + // Using k=1 for very gentle exponential curve (almost linear) + const k = 1; + const position = (Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1) * 100; + + if (position > 100 || position < 0) return null; + + return ( +
+ ); + })} +
+ + {/* Plot rectangles */} +
+ {harvestedPlots.map((plot, idx) => { + // Exponential scale: small values compressed to the left, large values spread to the right + const minValue = maxHarvestedIndex / 10; + const plotStart = Math.max(plot.startIndex.toNumber(), minValue); + const plotEnd = Math.max(plot.endIndex.toNumber(), minValue); + + const normalizedStart = (plotStart - minValue) / (maxHarvestedIndex - minValue); + const normalizedEnd = (plotEnd - minValue) / (maxHarvestedIndex - minValue); + + // Apply exponential transformation + const k = 1; + const leftPercent = (Math.exp(k * normalizedStart) - 1) / (Math.exp(k) - 1) * 100; + const rightPercent = (Math.exp(k * normalizedEnd) - 1) / (Math.exp(k) - 1) * 100; + const widthPercent = rightPercent - leftPercent; + const displayWidth = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); + + // Check if this is the leftmost plot + const isLeftmost = idx === 0 && leftPercent < 1; + + return ( +
+ ); + })} +
+
+ )} + + {/* Podline Section (Linear Scale) - Right 80% or 100% if no harvested plots */} +
+ {/* Grid lines at 10M intervals */} +
+ {generateAxisLabels(0, podLine.toNumber()).map((value) => { + if (value === 0) return null; // Skip 0, it's the marker + const position = podLine.gt(0) ? (value / podLine.toNumber()) * 100 : 0; + if (position > 100) return null; + + return ( +
+ ); + })} +
+ + {/* Plot rectangles - grouped visually but individually interactive */} +
+ {unharvestedPlots.map((group, groupIdx) => { + const groupPlaceInLine = group.startIndex.sub(harvestableIndex); + const groupEnd = group.endIndex.sub(harvestableIndex); + + const groupLeftPercent = podLine.gt(0) ? (groupPlaceInLine.toNumber() / podLine.toNumber()) * 100 : 0; + const groupWidthPercent = + podLine.gt(0) ? ((groupEnd.toNumber() - groupPlaceInLine.toNumber()) / podLine.toNumber()) * 100 : 0; + const groupDisplayWidth = Math.max(groupWidthPercent, MIN_PLOT_WIDTH_PERCENT); + + // Check if this is the rightmost group + const isRightmost = groupIdx === unharvestedPlots.length - 1 && groupLeftPercent + groupDisplayWidth > 99; + + // Check if group is hovered or selected (based on first plot in group) + const groupFirstPlotIndex = group.plots[0].index.toHuman(); + const hasHoveredPlot = group.plots.some((p) => p.index.toHuman() === hoveredPlotIndex); + const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.index.toHuman())); + const hasHarvestablePlot = group.plots.some((p) => p.harvestablePods?.gt(0)); + + // Determine group color + const groupIsGreen = hasHarvestablePlot || hasSelectedPlot || hasHoveredPlot; + const groupIsActive = hasHoveredPlot || hasSelectedPlot; + + // Border radius for the group + let groupBorderRadius = "2px"; + if (isRightmost) { + groupBorderRadius = "0 2px 2px 0"; + } + + // Handle group click - select all plots in the group + const handleGroupClick = () => { + if (onPlotGroupSelect) { + // Send all plot indices in the group + const plotIndices = group.plots.map((p) => p.index.toHuman()); + onPlotGroupSelect(plotIndices); + } + }; + + // Render group as single solid unit + return ( +
setHoveredPlotIndex(groupFirstPlotIndex)} + onMouseLeave={() => setHoveredPlotIndex(null)} + > +
+ ); + })} +
+
+
+
+ + {/* "0" Marker - vertical line extending to labels (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ )} + + {/* Bottom axis labels - outside border */} +
+ {/* "0" Label - positioned at the marker (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ 0 +
+ )} + +
+ {/* Harvested section labels (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ {generateLogGridPoints(maxHarvestedIndex).map((value) => { + // Exponential scale: small values compressed to the left, large values spread to the right + const minValue = maxHarvestedIndex / 10; + const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); + + // Apply exponential transformation + const k = 1; + const position = (Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1) * 100; + + return ( +
+ {formatAxisLabel(value)} +
+ ); + })} +
+ )} + + {/* Podline section labels - show place in line (10M, 20M, etc.) */} +
+ {generateAxisLabels(0, podLine.toNumber()).map((value) => { + if (value === 0 && hasHarvestedPlots) return null; // Skip 0 only if harvested section is shown + const position = podLine.gt(0) ? (value / podLine.toNumber()) * 100 : 0; + if (position > 100) return null; + + return ( +
+ {formatAxisLabel(value)} +
+ ); + })} +
+
+
+
+ ); +} + diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 1a1eceaa4..6b94e5dba 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -2,6 +2,7 @@ import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import ComboPlotInputField from "@/components/ComboPlotInputField"; import DestinationBalanceSelect from "@/components/DestinationBalanceSelect"; +import PodLineGraph from "@/components/PodLineGraph"; import SimpleInputField from "@/components/SimpleInputField"; import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Separator } from "@/components/ui/Separator"; @@ -10,6 +11,7 @@ import { PODS } from "@/constants/internalTokens"; import { beanstalkAbi } from "@/generated/contractHooks"; import { useProtocolAddress } from "@/hooks/pinto/useProtocolAddress"; import useTransaction from "@/hooks/useTransaction"; +import { useFarmerField } from "@/state/useFarmerField"; import { useHarvestableIndex, usePodIndex } from "@/state/useFieldData"; import { useQueryKeys } from "@/state/useQueryKeys"; import useTokenData from "@/state/useTokenData"; @@ -17,7 +19,7 @@ import { trackSimpleEvent } from "@/utils/analytics"; import { formatter } from "@/utils/format"; import { FarmToMode, Plot } from "@/utils/types"; import { useQueryClient } from "@tanstack/react-query"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useCallback, useMemo, useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; @@ -34,6 +36,7 @@ export default function CreateListing() { const mainToken = useTokenData().mainToken; const harvestableIndex = useHarvestableIndex(); const navigate = useNavigate(); + const farmerField = useFarmerField(); const queryClient = useQueryClient(); const { allPodListings, allMarket, farmerMarket } = useQueryKeys({ account, harvestableIndex }); @@ -156,6 +159,33 @@ export default function CreateListing() {

Select Plot

+ + {/* Pod Line Graph Visualization */} +
+ p.index.toHuman())} + onPlotGroupSelect={(plotIndices) => { + // Check if all plots in the group are already selected + const allSelected = plotIndices.every((index) => + plot.some((p) => p.index.toHuman() === index) + ); + + if (allSelected) { + // Deselect if already selected + setPlot([]); + } else { + // Find and select all plots in the group from farmer plots + const plotsToSelect = farmerField.plots.filter((p) => + plotIndices.includes(p.index.toHuman()) + ); + if (plotsToSelect.length > 0) { + handlePlotSelection(plotsToSelect); + } + } + }} + /> +
+ Date: Wed, 29 Oct 2025 18:36:41 +0300 Subject: [PATCH 04/54] Add graph title --- src/components/PodLineGraph.tsx | 5 +++++ src/pages/market/actions/CreateListing.tsx | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 59fc247fc..d9fbba3d5 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -233,6 +233,11 @@ export default function PodLineGraph({ return (
+ {/* Label */} +
+

My Pods In Line

+
+ {/* Plot container with border */}
diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 6b94e5dba..1e97fc630 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -158,7 +158,7 @@ export default function CreateListing() { return (
-

Select Plot

+

Select the Plot(s) you want to List (i):

{/* Pod Line Graph Visualization */}
@@ -186,14 +186,14 @@ export default function CreateListing() { />
- + /> */}

Amount I want for each Pod

From 57c4498a7dc45e0394b453bc3e75ba05bfece067 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Wed, 29 Oct 2025 22:02:49 +0300 Subject: [PATCH 05/54] Implement sell list UI --- src/components/PodLineGraph.tsx | 436 ++++++++++----------- src/pages/market/actions/CreateListing.tsx | 289 ++++++++++---- tailwind.config.js | 5 + 3 files changed, 432 insertions(+), 298 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index d9fbba3d5..5a082426e 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -36,11 +36,7 @@ interface PodLineGraphProps { /** * Groups nearby plots for visual display while keeping each plot individually interactive */ -function combinePlots( - plots: Plot[], - harvestableIndex: TokenValue, - selectedIndices: Set, -): CombinedPlot[] { +function combinePlots(plots: Plot[], harvestableIndex: TokenValue, selectedIndices: Set): CombinedPlot[] { if (plots.length === 0) return []; // Sort plots by index @@ -73,9 +69,7 @@ function combinePlots( const totalPods = currentGroup.reduce((sum, p) => sum.add(p.pods), TokenValue.ZERO); // Check if any plot in group is harvestable or selected - const isHarvestable = currentGroup.some( - (p) => p.harvestablePods?.gt(0) || endIndex.lte(harvestableIndex), - ); + const isHarvestable = currentGroup.some((p) => p.harvestablePods?.gt(0) || endIndex.lte(harvestableIndex)); const isSelected = currentGroup.some((p) => selectedIndices.has(p.index.toHuman())); combined.push({ @@ -100,16 +94,16 @@ function combinePlots( function generateAxisLabels(min: number, max: number): number[] { const INTERVAL = 10_000_000; // 10M const labels: number[] = []; - + // Start from 0 or the first 10M multiple const start = Math.floor(min / INTERVAL) * INTERVAL; - + for (let value = start; value <= max; value += INTERVAL) { if (value >= min) { labels.push(value); } } - + return labels; } @@ -119,11 +113,11 @@ function generateAxisLabels(min: number, max: number): number[] { */ function generateLogGridPoints(maxValue: number): number[] { if (maxValue <= 0) return []; - + const gridPoints: number[] = []; const million = 1_000_000; const minValue = maxValue / 10; - + // For values less than 10M, use simple 1M, 2M, 5M pattern if (maxValue <= 10 * million) { if (maxValue > 1 * million && 1 * million > minValue) gridPoints.push(1 * million); @@ -131,7 +125,7 @@ function generateLogGridPoints(maxValue: number): number[] { if (maxValue > 5 * million && 5 * million > minValue) gridPoints.push(5 * million); return gridPoints; } - + // For larger values, use powers of 10 let power = million; while (power < maxValue) { @@ -142,7 +136,7 @@ function generateLogGridPoints(maxValue: number): number[] { if (next5 < maxValue && next5 > minValue) gridPoints.push(next5); power *= 10; } - + return gridPoints.sort((a, b) => a - b); } @@ -223,10 +217,10 @@ export default function PodLineGraph({ // Calculate max harvested index for log scale const maxHarvestedIndex = harvestableIndex.gt(0) ? harvestableIndex.toNumber() : 1; - + // Check if there are any harvested plots const hasHarvestedPlots = harvestedPlots.length > 0; - + // Adjust width percentages based on whether we have harvested plots const harvestedWidthPercent = hasHarvestedPlots ? HARVESTED_WIDTH_PERCENT : 0; const podlineWidthPercent = hasHarvestedPlots ? PODLINE_WIDTH_PERCENT : 100; @@ -237,30 +231,90 @@ export default function PodLineGraph({

My Pods In Line

- + {/* Plot container with border */}
{/* Harvested Section (Log Scale) - Left 20% (only shown if there are harvested plots) */} {hasHarvestedPlots && ( -
- {/* Grid lines (exponential scale) */} +
+ {/* Grid lines (exponential scale) */} +
+ {generateLogGridPoints(maxHarvestedIndex).map((value) => { + // Exponential scale: small values compressed to the left, large values spread to the right + const minValue = maxHarvestedIndex / 10; + const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); + + // Apply exponential transformation: position = (e^(k*x) - 1) / (e^k - 1) + // Using k=1 for very gentle exponential curve (almost linear) + const k = 1; + const position = ((Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1)) * 100; + + if (position > 100 || position < 0) return null; + + return ( +
+ ); + })} +
+ + {/* Plot rectangles */} +
+ {harvestedPlots.map((plot, idx) => { + // Exponential scale: small values compressed to the left, large values spread to the right + const minValue = maxHarvestedIndex / 10; + const plotStart = Math.max(plot.startIndex.toNumber(), minValue); + const plotEnd = Math.max(plot.endIndex.toNumber(), minValue); + + const normalizedStart = (plotStart - minValue) / (maxHarvestedIndex - minValue); + const normalizedEnd = (plotEnd - minValue) / (maxHarvestedIndex - minValue); + + // Apply exponential transformation + const k = 1; + const leftPercent = ((Math.exp(k * normalizedStart) - 1) / (Math.exp(k) - 1)) * 100; + const rightPercent = ((Math.exp(k * normalizedEnd) - 1) / (Math.exp(k) - 1)) * 100; + const widthPercent = rightPercent - leftPercent; + const displayWidth = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); + + // Check if this is the leftmost plot + const isLeftmost = idx === 0 && leftPercent < 1; + + return ( +
+ ); + })} +
+
+ )} + + {/* Podline Section (Linear Scale) - Right 80% or 100% if no harvested plots */} +
+ {/* Grid lines at 10M intervals */}
- {generateLogGridPoints(maxHarvestedIndex).map((value) => { - // Exponential scale: small values compressed to the left, large values spread to the right - const minValue = maxHarvestedIndex / 10; - const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); - - // Apply exponential transformation: position = (e^(k*x) - 1) / (e^k - 1) - // Using k=1 for very gentle exponential curve (almost linear) - const k = 1; - const position = (Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1) * 100; - - if (position > 100 || position < 0) return null; + {generateAxisLabels(0, podLine.toNumber()).map((value) => { + if (value === 0) return null; // Skip 0, it's the marker + const position = podLine.gt(0) ? (value / podLine.toNumber()) * 100 : 0; + if (position > 100) return null; return (
@@ -268,217 +322,157 @@ export default function PodLineGraph({ })}
- {/* Plot rectangles */} + {/* Plot rectangles - grouped visually but individually interactive */}
- {harvestedPlots.map((plot, idx) => { - // Exponential scale: small values compressed to the left, large values spread to the right - const minValue = maxHarvestedIndex / 10; - const plotStart = Math.max(plot.startIndex.toNumber(), minValue); - const plotEnd = Math.max(plot.endIndex.toNumber(), minValue); - - const normalizedStart = (plotStart - minValue) / (maxHarvestedIndex - minValue); - const normalizedEnd = (plotEnd - minValue) / (maxHarvestedIndex - minValue); - - // Apply exponential transformation - const k = 1; - const leftPercent = (Math.exp(k * normalizedStart) - 1) / (Math.exp(k) - 1) * 100; - const rightPercent = (Math.exp(k * normalizedEnd) - 1) / (Math.exp(k) - 1) * 100; - const widthPercent = rightPercent - leftPercent; - const displayWidth = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); - - // Check if this is the leftmost plot - const isLeftmost = idx === 0 && leftPercent < 1; + {unharvestedPlots.map((group, groupIdx) => { + const groupPlaceInLine = group.startIndex.sub(harvestableIndex); + const groupEnd = group.endIndex.sub(harvestableIndex); + + const groupLeftPercent = podLine.gt(0) ? (groupPlaceInLine.toNumber() / podLine.toNumber()) * 100 : 0; + const groupWidthPercent = podLine.gt(0) + ? ((groupEnd.toNumber() - groupPlaceInLine.toNumber()) / podLine.toNumber()) * 100 + : 0; + const groupDisplayWidth = Math.max(groupWidthPercent, MIN_PLOT_WIDTH_PERCENT); + + // Check if this is the rightmost group + const isRightmost = + groupIdx === unharvestedPlots.length - 1 && groupLeftPercent + groupDisplayWidth > 99; + + // Check if group is hovered or selected (based on first plot in group) + const groupFirstPlotIndex = group.plots[0].index.toHuman(); + const hasHoveredPlot = group.plots.some((p) => p.index.toHuman() === hoveredPlotIndex); + const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.index.toHuman())); + const hasHarvestablePlot = group.plots.some((p) => p.harvestablePods?.gt(0)); + + // Determine group color + const groupIsGreen = hasHarvestablePlot || hasSelectedPlot || hasHoveredPlot; + const groupIsActive = hasHoveredPlot || hasSelectedPlot; + + // Border radius for the group + let groupBorderRadius = "2px"; + if (isRightmost) { + groupBorderRadius = "0 2px 2px 0"; + } - return ( -
- ); - })} + // Handle group click - select all plots in the group + const handleGroupClick = () => { + if (onPlotGroupSelect) { + // Send all plot indices in the group + const plotIndices = group.plots.map((p) => p.index.toHuman()); + onPlotGroupSelect(plotIndices); + } + }; + + // Render group as single solid unit + return ( +
setHoveredPlotIndex(groupFirstPlotIndex)} + onMouseLeave={() => setHoveredPlotIndex(null)} + /> + ); + })}
+
+
+ + {/* "0" Marker - vertical line extending to labels (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ )} + + {/* Bottom axis labels - outside border */} +
+ {/* "0" Label - positioned at the marker (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ 0 +
+ )} + +
+ {/* Harvested section labels (only shown if there are harvested plots) */} + {hasHarvestedPlots && ( +
+ {generateLogGridPoints(maxHarvestedIndex).map((value) => { + // Exponential scale: small values compressed to the left, large values spread to the right + const minValue = maxHarvestedIndex / 10; + const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); + + // Apply exponential transformation + const k = 1; + const position = ((Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1)) * 100; + + return ( +
+ {formatAxisLabel(value)} +
+ ); + })} +
)} - {/* Podline Section (Linear Scale) - Right 80% or 100% if no harvested plots */} + {/* Podline section labels - show place in line (10M, 20M, etc.) */}
- {/* Grid lines at 10M intervals */} -
{generateAxisLabels(0, podLine.toNumber()).map((value) => { - if (value === 0) return null; // Skip 0, it's the marker + if (value === 0 && hasHarvestedPlots) return null; // Skip 0 only if harvested section is shown const position = podLine.gt(0) ? (value / podLine.toNumber()) * 100 : 0; if (position > 100) return null; return (
- ); - })} -
- - {/* Plot rectangles - grouped visually but individually interactive */} -
- {unharvestedPlots.map((group, groupIdx) => { - const groupPlaceInLine = group.startIndex.sub(harvestableIndex); - const groupEnd = group.endIndex.sub(harvestableIndex); - - const groupLeftPercent = podLine.gt(0) ? (groupPlaceInLine.toNumber() / podLine.toNumber()) * 100 : 0; - const groupWidthPercent = - podLine.gt(0) ? ((groupEnd.toNumber() - groupPlaceInLine.toNumber()) / podLine.toNumber()) * 100 : 0; - const groupDisplayWidth = Math.max(groupWidthPercent, MIN_PLOT_WIDTH_PERCENT); - - // Check if this is the rightmost group - const isRightmost = groupIdx === unharvestedPlots.length - 1 && groupLeftPercent + groupDisplayWidth > 99; - - // Check if group is hovered or selected (based on first plot in group) - const groupFirstPlotIndex = group.plots[0].index.toHuman(); - const hasHoveredPlot = group.plots.some((p) => p.index.toHuman() === hoveredPlotIndex); - const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.index.toHuman())); - const hasHarvestablePlot = group.plots.some((p) => p.harvestablePods?.gt(0)); - - // Determine group color - const groupIsGreen = hasHarvestablePlot || hasSelectedPlot || hasHoveredPlot; - const groupIsActive = hasHoveredPlot || hasSelectedPlot; - - // Border radius for the group - let groupBorderRadius = "2px"; - if (isRightmost) { - groupBorderRadius = "0 2px 2px 0"; - } - - // Handle group click - select all plots in the group - const handleGroupClick = () => { - if (onPlotGroupSelect) { - // Send all plot indices in the group - const plotIndices = group.plots.map((p) => p.index.toHuman()); - onPlotGroupSelect(plotIndices); - } - }; - - // Render group as single solid unit - return ( -
setHoveredPlotIndex(groupFirstPlotIndex)} - onMouseLeave={() => setHoveredPlotIndex(null)} > + {formatAxisLabel(value)}
); })}
-
-
- - {/* "0" Marker - vertical line extending to labels (only shown if there are harvested plots) */} - {hasHarvestedPlots && ( -
- )} - - {/* Bottom axis labels - outside border */} -
- {/* "0" Label - positioned at the marker (only shown if there are harvested plots) */} - {hasHarvestedPlots && ( -
- 0 -
- )} - -
- {/* Harvested section labels (only shown if there are harvested plots) */} - {hasHarvestedPlots && ( -
- {generateLogGridPoints(maxHarvestedIndex).map((value) => { - // Exponential scale: small values compressed to the left, large values spread to the right - const minValue = maxHarvestedIndex / 10; - const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); - - // Apply exponential transformation - const k = 1; - const position = (Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1) * 100; - - return ( -
- {formatAxisLabel(value)} -
- ); - })} -
- )} - - {/* Podline section labels - show place in line (10M, 20M, etc.) */} -
- {generateAxisLabels(0, podLine.toNumber()).map((value) => { - if (value === 0 && hasHarvestedPlots) return null; // Skip 0 only if harvested section is shown - const position = podLine.gt(0) ? (value / podLine.toNumber()) * 100 : 0; - if (position > 100) return null; - - return ( -
- {formatAxisLabel(value)} -
- ); - })} -
-
); } - diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 1e97fc630..535e2195d 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -1,11 +1,13 @@ import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import ComboPlotInputField from "@/components/ComboPlotInputField"; -import DestinationBalanceSelect from "@/components/DestinationBalanceSelect"; import PodLineGraph from "@/components/PodLineGraph"; import SimpleInputField from "@/components/SimpleInputField"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; +import { MultiSlider, Slider } from "@/components/ui/Slider"; +import { Switch } from "@/components/ui/Switch"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; import { PODS } from "@/constants/internalTokens"; import { beanstalkAbi } from "@/generated/contractHooks"; @@ -18,16 +20,33 @@ import useTokenData from "@/state/useTokenData"; import { trackSimpleEvent } from "@/utils/analytics"; import { formatter } from "@/utils/format"; import { FarmToMode, Plot } from "@/utils/types"; +import { cn } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useMemo, useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; -const pricePerPodValidation = { - maxValue: 1, - minValue: 0.000001, - maxDecimals: 6, +const PRICE_PER_POD_CONFIG = { + MAX: 1, + MIN: 0.000001, + DECIMALS: 6, + DECIMAL_MULTIPLIER: 1_000_000, // 10^6 for 6 decimals +} as const; + +const TextAdornment = ({ text, className }: { text: string; className?: string }) => { + return
{text}
; +}; + +// Utility function to format and truncate price per pod values +const formatPricePerPod = (value: number): number => { + return Math.floor(value * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) / PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER; +}; + +// Utility function to clamp and format price per pod input +const clampAndFormatPrice = (value: number): number => { + const clamped = Math.max(PRICE_PER_POD_CONFIG.MIN, Math.min(PRICE_PER_POD_CONFIG.MAX, value)); + return formatPricePerPod(clamped); }; export default function CreateListing() { @@ -44,23 +63,40 @@ export default function CreateListing() { const [plot, setPlot] = useState([]); const [amount, setAmount] = useState(0); - const [expiresIn, setExpiresIn] = useState(undefined); + const [podRange, setPodRange] = useState<[number, number]>([0, 0]); const [pricePerPod, setPricePerPod] = useState(undefined); - const [balanceTo, setBalanceTo] = useState(FarmToMode.INTERNAL); + const [pricePerPodInput, setPricePerPodInput] = useState(""); + const [balanceTo, setBalanceTo] = useState(FarmToMode.EXTERNAL); // Default: Wallet Balance (toggle off) const podIndex = usePodIndex(); const maxExpiration = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; + const expiresIn = maxExpiration; // Auto-set to max expiration const minFill = TokenValue.fromHuman(1, PODS.decimals); const plotPosition = plot.length > 0 ? plot[0].index.sub(harvestableIndex) : TV.ZERO; - const maxExpirationValidation = useMemo( - () => ({ - minValue: 1, - maxValue: maxExpiration, - maxDecimals: 0, - }), - [maxExpiration], - ); + // Calculate max pods based on selected plots OR all farmer plots + const maxPodAmount = useMemo(() => { + const plotsToUse = plot.length > 0 ? plot : farmerField.plots; + if (plotsToUse.length === 0) return 0; + return plotsToUse.reduce((sum, p) => sum + p.pods.toNumber(), 0); + }, [plot, farmerField.plots]); + + // Calculate position range in line + const positionInfo = useMemo(() => { + const plotsToUse = plot.length > 0 ? plot : farmerField.plots; + if (plotsToUse.length === 0) return null; + + const minIndex = plotsToUse.reduce((min, p) => (p.index.lt(min) ? p.index : min), plotsToUse[0].index); + const maxIndex = plotsToUse.reduce((max, p) => { + const endIndex = p.index.add(p.pods); + return endIndex.gt(max) ? endIndex : max; + }, plotsToUse[0].index); + + return { + start: minIndex.sub(harvestableIndex), + end: maxIndex.sub(harvestableIndex), + }; + }, [plot, farmerField.plots, harvestableIndex]); // Plot selection handler with tracking const handlePlotSelection = useCallback( @@ -70,17 +106,60 @@ export default function CreateListing() { previous_count: plot.length, }); setPlot(plots); + + // Reset range when plots change + if (plots.length > 0) { + const totalPods = plots.reduce((sum, p) => sum + p.pods.toNumber(), 0); + setPodRange([0, totalPods]); + setAmount(totalPods); + } else { + setPodRange([0, 0]); + setAmount(0); + } }, [plot.length], ); + // Pod range slider handler (two thumbs) + const handlePodRangeChange = useCallback((value: number[]) => { + const [min, max] = value; + setPodRange([min, max]); + setAmount(max - min); + }, []); + + // Price per pod slider handler + const handlePriceSliderChange = useCallback((value: number[]) => { + const formatted = formatPricePerPod(value[0]); + setPricePerPod(formatted); + setPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + }, []); + + // Price per pod input handlers + const handlePriceInputChange = useCallback((e: React.ChangeEvent) => { + const value = e.target.value; + setPricePerPodInput(value); + }, []); + + const handlePriceInputBlur = useCallback(() => { + const numValue = Number.parseFloat(pricePerPodInput); + if (!Number.isNaN(numValue)) { + const formatted = clampAndFormatPrice(numValue); + setPricePerPod(formatted); + setPricePerPodInput(formatted.toString()); + } else { + setPricePerPodInput(""); + setPricePerPod(undefined); + } + }, [pricePerPodInput]); + // reset form and invalidate pod listing query const onSuccess = useCallback(() => { navigate(`/market/pods/buy/${plot[0].index.toBigInt()}`); setPlot([]); setAmount(0); - setExpiresIn(undefined); + setPodRange([0, 0]); setPricePerPod(undefined); + setPricePerPodInput(""); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); }, [navigate, plot, queryClient, allQK]); @@ -146,6 +225,7 @@ export default function CreateListing() { harvestableIndex, minFill, plot, + plotPosition, setSubmitting, mainToken.decimals, diamondAddress, @@ -153,76 +233,131 @@ export default function CreateListing() { ]); // ui state - const disabled = !pricePerPod || !expiresIn || !amount || !account || plot.length !== 1; + const disabled = !pricePerPod || !amount || !account || plot.length !== 1; return (
-
+ {/* Plot Selection Section */} +

Select the Plot(s) you want to List (i):

- + {/* Pod Line Graph Visualization */} -
- p.index.toHuman())} - onPlotGroupSelect={(plotIndices) => { - // Check if all plots in the group are already selected - const allSelected = plotIndices.every((index) => - plot.some((p) => p.index.toHuman() === index) - ); - - if (allSelected) { - // Deselect if already selected - setPlot([]); - } else { - // Find and select all plots in the group from farmer plots - const plotsToSelect = farmerField.plots.filter((p) => - plotIndices.includes(p.index.toHuman()) - ); - if (plotsToSelect.length > 0) { - handlePlotSelection(plotsToSelect); - } + p.index.toHuman())} + onPlotGroupSelect={(plotIndices) => { + // Check if all plots in the group are already selected + const allSelected = plotIndices.every((index) => plot.some((p) => p.index.toHuman() === index)); + + if (allSelected) { + // Deselect if already selected + setPlot([]); + } else { + // Find and select all plots in the group from farmer plots + const plotsToSelect = farmerField.plots.filter((p) => plotIndices.includes(p.index.toHuman())); + if (plotsToSelect.length > 0) { + handlePlotSelection(plotsToSelect); } - }} - /> -
- -{/* */} -
-
-

Amount I want for each Pod

- -
-
-

Expires In

- - {!!expiresIn && ( -

- This listing will automatically expire after {formatter.noDec(expiresIn)} more Pods become Harvestable. -

+ + {/* Position in Line Display (below graph) */} + {positionInfo && ( +
+

+ {positionInfo.start.toHuman("short")} - {positionInfo.end.toHuman("short")} +

+
)}
-
-

Send proceeds to

- -
+ + {/* Total Pods to List Summary */} + {maxPodAmount > 0 && ( +
+

Total Pods to List:

+

{formatter.noDec(plot.length > 0 ? amount : maxPodAmount)} Pods

+
+ )} + + {/* Show these sections only when plots are selected */} + {plot.length > 0 && ( +
+ {/* Pod Range Selection */} +
+
+

Select Pods

+
+

{formatter.noDec(podRange[0])}

+
+ {maxPodAmount > 0 && ( + + )} +
+

{formatter.noDec(podRange[1])}

+
+
+
+ + {/* Price Per Pod */} +
+

Amount I am willing to sell for each Pod for:

+
+
+

0

+ +

1

+
+ } + /> +
+
+ {/* Expires In - Auto-set to max expiration */} + {/*
+

Expires In

+ + {!!expiresIn && ( +

+ This listing will automatically expire after {formatter.noDec(expiresIn)} more Pods become Harvestable. +

+ )} +
*/} + {/*
+

Send balances to Farm Balance

+ setBalanceTo(checked ? FarmToMode.INTERNAL : FarmToMode.EXTERNAL)} + /> +
*/} +
+ )}
{!disabled && } diff --git a/tailwind.config.js b/tailwind.config.js index 0d5f4ebad..fa500884c 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -248,6 +248,10 @@ module.exports = { boxShadow: "0 0 30px var(--glow-color, rgba(36, 102, 69, 0.7))" }, }, + "fade-in": { + "0%": { opacity: "0", transform: "translateY(-10px)" }, + "100%": { opacity: "1", transform: "translateY(0)" }, + }, }, animation: { "accordion-down": "accordion-down 0.2s ease-out", @@ -261,6 +265,7 @@ module.exports = { "vertical-marquee-small": "vertical-marquee-small 80s linear infinite", "text-background-scroll": "text-background-scroll 5s linear infinite", "pulse-glow": "pulse-glow 8s ease-in-out infinite", + "fade-in": "fade-in 0.1s ease-in-out", }, aspectRatio: { "3/1": "3 / 1", From b87b0c7564e0e7314d87355b3d78d4a870e9d97f Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 30 Oct 2025 00:16:29 +0300 Subject: [PATCH 06/54] Add partially select with slider to PodLineGraph --- src/components/PodLineGraph.tsx | 77 ++++++++++++++++++---- src/pages/market/actions/CreateListing.tsx | 48 +++++++++++++- 2 files changed, 111 insertions(+), 14 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 5a082426e..bd523ea24 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -27,6 +27,8 @@ interface PodLineGraphProps { plots?: Plot[]; /** Indices of selected plots */ selectedPlotIndices?: string[]; + /** Optional: specify a partial range selection (absolute pod line positions) */ + selectedPodRange?: { start: TokenValue; end: TokenValue }; /** Callback when a plot group is clicked - receives all plot indices in the group */ onPlotGroupSelect?: (plotIndices: string[]) => void; /** Additional CSS classes */ @@ -156,6 +158,7 @@ function formatAxisLabel(value: number): string { export default function PodLineGraph({ plots: providedPlots, selectedPlotIndices = [], + selectedPodRange, onPlotGroupSelect, className, }: PodLineGraphProps) { @@ -344,8 +347,35 @@ export default function PodLineGraph({ const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.index.toHuman())); const hasHarvestablePlot = group.plots.some((p) => p.harvestablePods?.gt(0)); + // Calculate partial selection if selectedPodRange is provided + let partialSelectionPercent: { start: number; end: number } | null = null; + if (selectedPodRange && hasSelectedPlot) { + // Calculate intersection of group and selected range + const groupStart = group.startIndex; + const groupEnd = group.endIndex; + const rangeStart = selectedPodRange.start; + const rangeEnd = selectedPodRange.end; + + // Check if there's an overlap + if (rangeStart.lt(groupEnd) && rangeEnd.gt(groupStart)) { + // Calculate the overlapping range within the group + const overlapStart = rangeStart.gt(groupStart) ? rangeStart : groupStart; + const overlapEnd = rangeEnd.lt(groupEnd) ? rangeEnd : groupEnd; + + // Convert to percentages within the group + const groupTotal = groupEnd.sub(groupStart).toNumber(); + const overlapStartOffset = overlapStart.sub(groupStart).toNumber(); + const overlapEndOffset = overlapEnd.sub(groupStart).toNumber(); + + partialSelectionPercent = { + start: (overlapStartOffset / groupTotal) * 100, + end: (overlapEndOffset / groupTotal) * 100, + }; + } + } + // Determine group color - const groupIsGreen = hasHarvestablePlot || hasSelectedPlot || hasHoveredPlot; + const groupIsGreen = hasHarvestablePlot || (hasSelectedPlot && !partialSelectionPercent) || hasHoveredPlot; const groupIsActive = hasHoveredPlot || hasSelectedPlot; // Border radius for the group @@ -363,27 +393,52 @@ export default function PodLineGraph({ } }; - // Render group as single solid unit + // Render group with partial selection if applicable return (
setHoveredPlotIndex(groupFirstPlotIndex)} - onMouseLeave={() => setHoveredPlotIndex(null)} - /> + > + {/* Base rectangle (background color) */} +
setHoveredPlotIndex(groupFirstPlotIndex)} + onMouseLeave={() => setHoveredPlotIndex(null)} + /> + + {/* Partial selection overlay (green) */} + {partialSelectionPercent && ( +
= 99.9 ? groupBorderRadius : "0", + borderBottomRightRadius: partialSelectionPercent.end >= 99.9 ? groupBorderRadius : "0", + }} + /> + )} +
); })}
diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 535e2195d..38f6b35b5 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -98,6 +98,40 @@ export default function CreateListing() { }; }, [plot, farmerField.plots, harvestableIndex]); + // Calculate selected pod range for PodLineGraph partial selection + const selectedPodRange = useMemo(() => { + if (plot.length === 0) return undefined; + + // Sort plots by index + const sortedPlots = [...plot].sort((a, b) => a.index.sub(b.index).toNumber()); + + // Helper function to convert pod offset to absolute index + const offsetToAbsoluteIndex = (offset: number): TokenValue => { + let remainingOffset = offset; + + for (const p of sortedPlots) { + const plotPods = p.pods.toNumber(); + + if (remainingOffset <= plotPods) { + // The offset falls within this plot + return p.index.add(TokenValue.fromHuman(remainingOffset, PODS.decimals)); + } + + // Move to next plot + remainingOffset -= plotPods; + } + + // If we've exhausted all plots, return the end of the last plot + const lastPlot = sortedPlots[sortedPlots.length - 1]; + return lastPlot.index.add(lastPlot.pods); + }; + + return { + start: offsetToAbsoluteIndex(podRange[0]), + end: offsetToAbsoluteIndex(podRange[1]), + }; + }, [plot, podRange]); + // Plot selection handler with tracking const handlePlotSelection = useCallback( (plots: Plot[]) => { @@ -123,8 +157,15 @@ export default function CreateListing() { // Pod range slider handler (two thumbs) const handlePodRangeChange = useCallback((value: number[]) => { const [min, max] = value; + const newAmount = max - min; + setPodRange([min, max]); - setAmount(max - min); + setAmount(newAmount); + + // If amount becomes 0, clear the plot selection + if (newAmount === 0) { + setPlot([]); + } }, []); // Price per pod slider handler @@ -244,6 +285,7 @@ export default function CreateListing() { {/* Pod Line Graph Visualization */} p.index.toHuman())} + selectedPodRange={selectedPodRange} onPlotGroupSelect={(plotIndices) => { // Check if all plots in the group are already selected const allSelected = plotIndices.every((index) => plot.some((p) => p.index.toHuman() === index)); @@ -349,13 +391,13 @@ export default function CreateListing() {

)}
*/} - {/*
+

Send balances to Farm Balance

setBalanceTo(checked ? FarmToMode.INTERNAL : FarmToMode.EXTERNAL)} /> -
*/} +
)}
From 4ce96ca22b6372ff9181a0ebab904085cf6a4881 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 30 Oct 2025 03:29:08 +0300 Subject: [PATCH 07/54] Implement sell/fill --- src/components/PodLineGraph.tsx | 24 +- src/pages/market/MarketModeSelect.tsx | 3 +- src/pages/market/actions/CreateListing.tsx | 18 +- src/pages/market/actions/FillOrder.tsx | 446 +++++++++++++++------ 4 files changed, 344 insertions(+), 147 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index bd523ea24..8285e9e12 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -72,7 +72,8 @@ function combinePlots(plots: Plot[], harvestableIndex: TokenValue, selectedIndic // Check if any plot in group is harvestable or selected const isHarvestable = currentGroup.some((p) => p.harvestablePods?.gt(0) || endIndex.lte(harvestableIndex)); - const isSelected = currentGroup.some((p) => selectedIndices.has(p.index.toHuman())); + // Check selection by id (for order markers) or index (for regular plots) + const isSelected = currentGroup.some((p) => selectedIndices.has(p.id || p.index.toHuman())); combined.push({ startIndex, @@ -342,9 +343,10 @@ export default function PodLineGraph({ groupIdx === unharvestedPlots.length - 1 && groupLeftPercent + groupDisplayWidth > 99; // Check if group is hovered or selected (based on first plot in group) - const groupFirstPlotIndex = group.plots[0].index.toHuman(); - const hasHoveredPlot = group.plots.some((p) => p.index.toHuman() === hoveredPlotIndex); - const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.index.toHuman())); + // Use id (for order markers) or index (for regular plots) + const groupFirstPlotIndex = group.plots[0].id || group.plots[0].index.toHuman(); + const hasHoveredPlot = group.plots.some((p) => (p.id || p.index.toHuman()) === hoveredPlotIndex); + const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.id || p.index.toHuman())); const hasHarvestablePlot = group.plots.some((p) => p.harvestablePods?.gt(0)); // Calculate partial selection if selectedPodRange is provided @@ -361,12 +363,12 @@ export default function PodLineGraph({ // Calculate the overlapping range within the group const overlapStart = rangeStart.gt(groupStart) ? rangeStart : groupStart; const overlapEnd = rangeEnd.lt(groupEnd) ? rangeEnd : groupEnd; - + // Convert to percentages within the group const groupTotal = groupEnd.sub(groupStart).toNumber(); const overlapStartOffset = overlapStart.sub(groupStart).toNumber(); const overlapEndOffset = overlapEnd.sub(groupStart).toNumber(); - + partialSelectionPercent = { start: (overlapStartOffset / groupTotal) * 100, end: (overlapEndOffset / groupTotal) * 100, @@ -375,7 +377,8 @@ export default function PodLineGraph({ } // Determine group color - const groupIsGreen = hasHarvestablePlot || (hasSelectedPlot && !partialSelectionPercent) || hasHoveredPlot; + const groupIsGreen = + hasHarvestablePlot || (hasSelectedPlot && !partialSelectionPercent) || hasHoveredPlot; const groupIsActive = hasHoveredPlot || hasSelectedPlot; // Border radius for the group @@ -387,8 +390,9 @@ export default function PodLineGraph({ // Handle group click - select all plots in the group const handleGroupClick = () => { if (onPlotGroupSelect) { - // Send all plot indices in the group - const plotIndices = group.plots.map((p) => p.index.toHuman()); + // Send all plot IDs or indices in the group + // Prefer 'id' if available (for order markers), otherwise use index + const plotIndices = group.plots.map((p) => p.id || p.index.toHuman()); onPlotGroupSelect(plotIndices); } }; @@ -420,7 +424,7 @@ export default function PodLineGraph({ onMouseEnter={() => setHoveredPlotIndex(groupFirstPlotIndex)} onMouseLeave={() => setHoveredPlotIndex(null)} /> - + {/* Partial selection overlay (green) */} {partialSelectionPercent && (
{ if (plot.length === 0) return undefined; - + // Sort plots by index const sortedPlots = [...plot].sort((a, b) => a.index.sub(b.index).toNumber()); - + // Helper function to convert pod offset to absolute index const offsetToAbsoluteIndex = (offset: number): TokenValue => { let remainingOffset = offset; - + for (const p of sortedPlots) { const plotPods = p.pods.toNumber(); - + if (remainingOffset <= plotPods) { // The offset falls within this plot return p.index.add(TokenValue.fromHuman(remainingOffset, PODS.decimals)); } - + // Move to next plot remainingOffset -= plotPods; } - + // If we've exhausted all plots, return the end of the last plot const lastPlot = sortedPlots[sortedPlots.length - 1]; return lastPlot.index.add(lastPlot.pods); }; - + return { start: offsetToAbsoluteIndex(podRange[0]), end: offsetToAbsoluteIndex(podRange[1]), @@ -158,10 +158,10 @@ export default function CreateListing() { const handlePodRangeChange = useCallback((value: number[]) => { const [min, max] = value; const newAmount = max - min; - + setPodRange([min, max]); setAmount(newAmount); - + // If amount becomes 0, clear the plot selection if (newAmount === 0) { setPlot([]); diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index 5bb0dd54a..6f0910a23 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -1,10 +1,9 @@ -import podIcon from "@/assets/protocol/Pod.png"; import pintoIcon from "@/assets/tokens/PINTO.png"; -import { TV, TokenValue } from "@/classes/TokenValue"; -import ComboPlotInputField from "@/components/ComboPlotInputField"; -import DestinationBalanceSelect from "@/components/DestinationBalanceSelect"; +import { TokenValue } from "@/classes/TokenValue"; +import PodLineGraph from "@/components/PodLineGraph"; import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Separator } from "@/components/ui/Separator"; +import { MultiSlider } from "@/components/ui/Slider"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; import { PODS } from "@/constants/internalTokens"; import { beanstalkAbi } from "@/generated/contractHooks"; @@ -13,81 +12,216 @@ import useTransaction from "@/hooks/useTransaction"; import usePodOrders from "@/state/market/usePodOrders"; import { useFarmerBalances } from "@/state/useFarmerBalances"; import { useFarmerPlotsQuery } from "@/state/useFarmerField"; -import { useHarvestableIndex } from "@/state/useFieldData"; +import { useHarvestableIndex, usePodIndex } from "@/state/useFieldData"; import { useQueryKeys } from "@/state/useQueryKeys"; import useTokenData from "@/state/useTokenData"; import { trackSimpleEvent } from "@/utils/analytics"; import { formatter } from "@/utils/format"; import { FarmToMode, Plot } from "@/utils/types"; import { useQueryClient } from "@tanstack/react-query"; -import { useCallback, useMemo, useState } from "react"; -import { useParams } from "react-router-dom"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { toast } from "sonner"; import { Address } from "viem"; import { useAccount } from "wagmi"; import CancelOrder from "./CancelOrder"; +//! TODO: ADD INPUT FIELD FOR POD AMOUNTS +//! TODO: SOLVE CHART REDIRECT ISSUE +//! TODO: ADD SETTINGS SECTION + +// Constants +const FIELD_ID = 0n; +const START_INDEX_WITHIN_PLOT = 0n; +const MIN_PODS_THRESHOLD = 1; // Minimum pods required for order eligibility + +// Helper Functions +const calculateRemainingPods = ( + order: { + beanAmount: string | bigint | number; + beanAmountFilled: string | bigint | number; + pricePerPod: string | bigint | number; + }, + tokenDecimals: number, +): number => { + const amount = TokenValue.fromBlockchain(order.beanAmount, tokenDecimals); + const amountFilled = TokenValue.fromBlockchain(order.beanAmountFilled, tokenDecimals); + const pricePerPod = TokenValue.fromBlockchain(order.pricePerPod, tokenDecimals); + + return pricePerPod.gt(0) ? amount.sub(amountFilled).div(pricePerPod).toNumber() : 0; +}; + +const isOrderEligible = ( + order: { + beanAmount: string | bigint | number; + beanAmountFilled: string | bigint | number; + pricePerPod: string | bigint | number; + maxPlaceInLine: string | bigint | number; + }, + tokenDecimals: number, + podLine: TokenValue, +): boolean => { + const amount = TokenValue.fromBlockchain(order.beanAmount, tokenDecimals); + const amountFilled = TokenValue.fromBlockchain(order.beanAmountFilled, tokenDecimals); + const pricePerPod = TokenValue.fromBlockchain(order.pricePerPod, tokenDecimals); + const remainingPods = pricePerPod.gt(0) ? amount.sub(amountFilled).div(pricePerPod) : TokenValue.ZERO; + const orderMaxPlace = TokenValue.fromBlockchain(order.maxPlaceInLine, PODS.decimals); + + return remainingPods.gt(MIN_PODS_THRESHOLD) && orderMaxPlace.lte(podLine); +}; + export default function FillOrder() { const mainToken = useTokenData().mainToken; const diamondAddress = useProtocolAddress(); const { queryKeys: balanceQKs } = useFarmerBalances(); const account = useAccount(); + const harvestableIndex = useHarvestableIndex(); + const podIndex = usePodIndex(); + const podLine = podIndex.sub(harvestableIndex); const queryClient = useQueryClient(); - const { allPodOrders, allMarket, farmerMarket, farmerField } = useQueryKeys({ + const { + allPodOrders, + allMarket, + farmerMarket, + farmerField: farmerFieldQK, + } = useQueryKeys({ account: account.address, }); const { queryKey: farmerPlotsQK } = useFarmerPlotsQuery(); const allQK = useMemo( - () => [allPodOrders, allMarket, farmerMarket, farmerField, farmerPlotsQK, ...balanceQKs], - [allPodOrders, allMarket, farmerMarket, farmerField, farmerPlotsQK, balanceQKs], + () => [allPodOrders, allMarket, farmerMarket, farmerFieldQK, farmerPlotsQK, ...balanceQKs], + [allPodOrders, allMarket, farmerMarket, farmerFieldQK, farmerPlotsQK, balanceQKs], ); const [plot, setPlot] = useState([]); - // TODO: need to handle an edge case with amount where the first half of the plot is sellable, and the second half is not. - // Currently this is handled my making such a plot not fillable via ComboPlotInputField. - const [amount, setAmount] = useState(0); - const [balanceTo, setBalanceTo] = useState(FarmToMode.INTERNAL); + const [podRange, setPodRange] = useState<[number, number]>([0, 0]); + const [selectedOrderIds, setSelectedOrderIds] = useState([]); + + const prevTotalCapacityRef = useRef(0); + const selectedOrderIdsRef = useRef([]); + + // Keep ref in sync and reset capacity ref when selection changes + useEffect(() => { + selectedOrderIdsRef.current = selectedOrderIds; + prevTotalCapacityRef.current = -1; // Reset to allow re-triggering range update + }, [selectedOrderIds]); - const { id } = useParams(); const podOrders = usePodOrders(); const allOrders = podOrders.data; - const order = allOrders?.podOrders.find((order) => order.id === id); - - const amountOrder = TokenValue.fromBlockchain(order?.beanAmount || 0, mainToken.decimals); - const amountFilled = TokenValue.fromBlockchain(order?.beanAmountFilled || 0, mainToken.decimals); - const pricePerPod = TokenValue.fromBlockchain(order?.pricePerPod || 0, mainToken.decimals); - const minFillAmount = TokenValue.fromBlockchain(order?.minFillAmount || 0, PODS.decimals); - const remainingBeans = amountOrder.sub(amountFilled); - // biome-ignore lint/correctness/useExhaustiveDependencies: All are derived from `order` - const { remainingPods, maxPlaceInLine } = useMemo(() => { + + const { selectedOrders, orderPositions, totalCapacity } = useMemo(() => { + if (!allOrders?.podOrders) return { selectedOrders: [], orderPositions: [], totalCapacity: 0 }; + + const orders = allOrders.podOrders.filter((order) => selectedOrderIds.includes(order.id)); + + let cumulative = 0; + const positions = orders.map((order) => { + const fillableAmount = calculateRemainingPods(order, mainToken.decimals); + const startPos = cumulative; + cumulative += fillableAmount; + + return { + orderId: order.id, + startPos, + endPos: cumulative, + capacity: fillableAmount, + order, + }; + }); + return { - remainingPods: pricePerPod.gt(0) ? remainingBeans.div(pricePerPod) : TokenValue.ZERO, - maxPlaceInLine: TokenValue.fromBlockchain(order?.maxPlaceInLine || 0, PODS.decimals), + selectedOrders: orders, + orderPositions: positions, + totalCapacity: cumulative, }; - }, [order]); + }, [allOrders?.podOrders, selectedOrderIds, mainToken.decimals]); - const harvestableIndex = useHarvestableIndex(); + const order = selectedOrders[0]; + const amount = podRange[1] - podRange[0]; const amountToSell = TokenValue.fromHuman(amount || 0, PODS.decimals); - const plotPosition = plot.length > 0 ? plot[0].index.sub(harvestableIndex) : TV.ZERO; - - // Plot selection handler with tracking - const handlePlotSelection = useCallback( - (plots: Plot[]) => { - trackSimpleEvent(ANALYTICS_EVENTS.MARKET.LISTING_PLOT_SELECTED, { - plot_count: plots.length, - previous_count: plot.length, - fill_action: "order", + + const ordersToFill = useMemo(() => { + const [rangeStart, rangeEnd] = podRange; + + return orderPositions + .filter((pos) => { + return pos.endPos > rangeStart && pos.startPos < rangeEnd; + }) + .map((pos) => { + const overlapStart = Math.max(pos.startPos, rangeStart); + const overlapEnd = Math.min(pos.endPos, rangeEnd); + const fillAmount = overlapEnd - overlapStart; + + return { + order: pos.order, + amount: fillAmount, + }; }); - setPlot(plots); - }, - [plot.length], - ); + }, [orderPositions, podRange]); + + // Calculate weighted average price per pod once for reuse + const weightedAvgPricePerPod = useMemo(() => { + if (ordersToFill.length === 0 || amount === 0) return 0; + + let totalValue = 0; + let totalPods = 0; + + ordersToFill.forEach(({ order, amount: fillAmount }) => { + const orderPricePerPod = TokenValue.fromBlockchain(order.pricePerPod, mainToken.decimals).toNumber(); + totalValue += orderPricePerPod * fillAmount; + totalPods += fillAmount; + }); + + return totalPods > 0 ? totalValue / totalPods : 0; + }, [ordersToFill, amount, mainToken.decimals]); + + const eligibleOrders = useMemo(() => { + if (!allOrders?.podOrders) return []; + + return allOrders.podOrders.filter((order) => isOrderEligible(order, mainToken.decimals, podLine)); + }, [allOrders?.podOrders, mainToken.decimals, podLine]); + + useEffect(() => { + if (totalCapacity !== prevTotalCapacityRef.current) { + setPodRange([0, totalCapacity]); + prevTotalCapacityRef.current = totalCapacity; + } + }, [totalCapacity]); + + const orderMarkers = useMemo(() => { + if (eligibleOrders.length === 0) return []; + + return eligibleOrders.map((order) => { + const orderMaxPlace = TokenValue.fromBlockchain(order.maxPlaceInLine, PODS.decimals); + const markerIndex = harvestableIndex.add(orderMaxPlace); + + return { + index: markerIndex, + pods: TokenValue.fromHuman(1, PODS.decimals), + harvestablePods: TokenValue.ZERO, + id: order.id, + } as Plot; + }); + }, [eligibleOrders, harvestableIndex]); + + const plotsForGraph = useMemo(() => { + return orderMarkers; + }, [orderMarkers]); + + const handlePodRangeChange = useCallback((values: number[]) => { + const newRange = values as [number, number]; + setPodRange(newRange); + + const rangeAmount = newRange[1] - newRange[0]; + if (rangeAmount === 0 && selectedOrderIdsRef.current.length > 0) { + setSelectedOrderIds([]); + } + }, []); - // reset form and invalidate pod orders/farmer plot queries const onSuccess = useCallback(() => { setPlot([]); - setAmount(0); + setPodRange([0, 0]); + setSelectedOrderIds([]); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); }, [queryClient, allQK]); @@ -102,7 +236,6 @@ export default function FillOrder() { return; } - // Track pod order fill trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_ORDER_FILL, { order_price_per_pod: Number(order.pricePerPod), order_max_place: Number(order.maxPlaceInLine), @@ -117,16 +250,16 @@ export default function FillOrder() { functionName: "fillPodOrder", args: [ { - orderer: order.farmer.id as Address, // order - account - fieldId: 0n, // plot - fieldId - maxPlaceInLine: BigInt(order.maxPlaceInLine), // order - maxPlaceInLine - pricePerPod: Number(order.pricePerPod), // order - pricePerPod - minFillAmount: BigInt(order.minFillAmount), // order - minFillAmount + orderer: order.farmer.id as Address, + fieldId: FIELD_ID, + maxPlaceInLine: BigInt(order.maxPlaceInLine), + pricePerPod: Number(order.pricePerPod), + minFillAmount: BigInt(order.minFillAmount), }, - plot[0].index.toBigInt(), // index of plot to sell - 0n, // start index within plot - amountToSell.toBigInt(), // amount of pods to sell - Number(balanceTo), //destination balance + plot[0].index.toBigInt(), + START_INDEX_WITHIN_PLOT, + amountToSell.toBigInt(), + Number(FarmToMode.INTERNAL), ], }); } catch (e) { @@ -137,109 +270,168 @@ export default function FillOrder() { } finally { setSubmitting(false); } - }, [order, plot, amountToSell, balanceTo, writeWithEstimateGas, setSubmitting, diamondAddress]); + }, [order, plot, amountToSell, writeWithEstimateGas, setSubmitting, diamondAddress]); + + const isOwnOrder = order && order.farmer.id === account.address?.toLowerCase(); - const isOwnOrder = order && order?.farmer.id === account.address?.toLowerCase(); - const disabled = !order || !plot[0] || !amount; + if (eligibleOrders.length === 0) { + return ( +
+
+

Select the order you want to fill (i):

+ +
+
+

There are no open orders that can be filled with your Pods.

+
+
+ ); + } return ( -
- {!order ? ( -
- Select an Order on the panel to the left +
+ {/* Order Markers Visualization - Click to select orders (multi-select) */} +
+

Select the orders you want to fill:

+ + {/* Pod Line Graph - Shows order markers (orange thin lines at maxPlaceInLine) */} + item.order.id)} + onPlotGroupSelect={(plotIndices) => { + // Multi-select toggle: add or remove clicked order + if (plotIndices.length > 0) { + const clickedOrderId = plotIndices[0]; + + setSelectedOrderIds((prev) => { + // If already selected, remove it + if (prev.includes(clickedOrderId)) { + return prev.filter((id) => id !== clickedOrderId); + } + // Otherwise, add it to selection + return [...prev, clickedOrderId]; + }); + } + }} + /> + + {/* Total Pods Available - Simple text below graph */} +
+

+ Total Pods that can be filled:{" "} + {formatter.noDec( + eligibleOrders.reduce((sum, order) => sum + calculateRemainingPods(order, mainToken.decimals), 0), + )}{" "} + Pods +

- ) : ( -
-
-
-

Buyer

-

{order.farmer.id.substring(0, 6)}

-
-
-

Place in Line

-

0 - {maxPlaceInLine.toHuman("short")}

-
-
-

Pods Requested

-
- {"pod -

{remainingPods.toHuman("short")}

-
-
-
-

Price per Pod

-
- {"pinto -

{pricePerPod.toHuman("short")}

-
-
-
-

Pinto Remaining

-
- {"pinto -

{remainingBeans.toHuman("short")}

-
-
-
+
+ + {/* Show cancel option if user owns an order */} + {isOwnOrder && order && ( + <> - {isOwnOrder ? ( - - ) : ( + + + )} + + {/* Show form only if orders are selected and not own order (even if amount is 0) */} + {!isOwnOrder && + selectedOrderIds.length > 0 && + (() => { + const maxAmount = totalCapacity; + + return ( <> -
-

Select Plot

- + {/* Amount Selection */} +
+ {/* Pods selected from slider */} +
+

+ Pods Selected in {ordersToFill.length} Order{ordersToFill.length !== 1 ? "s" : ""}: +

+

+ {formatter.number(amount, { minDecimals: 0, maxDecimals: 2 })} Pods +

+
+ + {/* Pod Range Selection - Multi-slider for selecting from which orders */} +
+
+

Select Range

+
+

+ {formatter.number(podRange[0], { minDecimals: 0, maxDecimals: 2 })} +

+
+ {maxAmount > 0 && ( + + )} +
+

+ {formatter.number(podRange[1], { minDecimals: 0, maxDecimals: 2 })} +

+
+
+
+ + {/* Order Info Display - Based on selected range */} +
+
+

+ {ordersToFill.length > 1 ? "Weighted Avg Price/Pod" : "Price/Pod"} +

+
+

+ {formatter.number(weightedAvgPricePerPod, { minDecimals: 2, maxDecimals: 6 })} Pinto +

+
+
+
-
+ + {/* OLD DESTINATION SECTION - COMMENTED OUT FOR POTENTIAL FUTURE USE */} + {/*

Destination

-
+
*/} +
- {!disabled && ( - + {ordersToFill.length > 0 && amount > 0 && ( + )}
- )} -
- )} + ); + })()}
); } -const ActionSummary = ({ - podAmount, - plotPosition, - pricePerPod, -}: { podAmount: TV; plotPosition: TV; pricePerPod: TV }) => { - const beansOut = podAmount.mul(pricePerPod); +const ActionSummary = ({ podAmount, pricePerPod }: { podAmount: number; pricePerPod: number }) => { + const beansOut = podAmount * pricePerPod; return (
-

- In exchange for {formatter.noDec(podAmount)} Pods @ {plotPosition.toHuman("short")} in Line, I will receive -

+

You will Receive:

{"order - {formatter.number(beansOut, { minDecimals: 0, maxDecimals: 2 })} Pinto + {formatter.number(beansOut, { minDecimals: 0, maxDecimals: 2 })} PINTO

From 04e566d2d923c00e29737156b8c45e913b45b5c8 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 30 Oct 2025 05:22:13 +0300 Subject: [PATCH 08/54] Implement buy/order flow --- src/components/PodLineGraph.tsx | 18 ++ src/pages/market/actions/CreateOrder.tsx | 294 +++++++++++++++++------ 2 files changed, 233 insertions(+), 79 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 8285e9e12..d785b812c 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -29,6 +29,8 @@ interface PodLineGraphProps { selectedPlotIndices?: string[]; /** Optional: specify a partial range selection (absolute pod line positions) */ selectedPodRange?: { start: TokenValue; end: TokenValue }; + /** Optional: show order range overlay from 0 to this position (absolute index) */ + orderRangeEnd?: TokenValue; /** Callback when a plot group is clicked - receives all plot indices in the group */ onPlotGroupSelect?: (plotIndices: string[]) => void; /** Additional CSS classes */ @@ -160,6 +162,7 @@ export default function PodLineGraph({ plots: providedPlots, selectedPlotIndices = [], selectedPodRange, + orderRangeEnd, onPlotGroupSelect, className, }: PodLineGraphProps) { @@ -326,6 +329,21 @@ export default function PodLineGraph({ })}
+ {/* Order range overlay (from 0 to orderRangeEnd) */} + {orderRangeEnd?.gt(harvestableIndex) && ( +
+ )} + {/* Plot rectangles - grouped visually but individually interactive */}
{unharvestedPlots.map((group, groupIdx) => { diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 26386ed30..e38c970b0 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -2,11 +2,14 @@ import podIcon from "@/assets/protocol/Pod.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; +import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SimpleInputField from "@/components/SimpleInputField"; import SlippageButton from "@/components/SlippageButton"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; +import { Slider } from "@/components/ui/Slider"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; import { PODS } from "@/constants/internalTokens"; import createPodOrder from "@/encoders/createPodOrder"; @@ -27,21 +30,32 @@ import { trackSimpleEvent } from "@/utils/analytics"; import { formatter } from "@/utils/format"; import { tokensEqual } from "@/utils/token"; import { FarmFromMode, FarmToMode, Token } from "@/utils/types"; +import { cn } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useEffect, useMemo, useState } from "react"; import { toast } from "sonner"; import { useAccount } from "wagmi"; -const pricePerPodValidation = { - maxValue: 1, - minValue: 0.000001, - maxDecimals: 6, +const PRICE_PER_POD_CONFIG = { + MAX: 1, + MIN: 0.000001, + DECIMALS: 6, + DECIMAL_MULTIPLIER: 1_000_000, // 10^6 for 6 decimals +} as const; + +const TextAdornment = ({ text, className }: { text: string; className?: string }) => { + return
{text}
; +}; + +// Utility function to format and truncate price per pod values +const formatPricePerPod = (value: number): number => { + return Math.floor(value * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) / PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER; }; -const maxPlaceInLineValidation = { - minValue: 1, - maxValue: 999999999999, - maxDecimals: 0, +// Utility function to clamp and format price per pod input +const clampAndFormatPrice = (value: number): number => { + const clamped = Math.max(PRICE_PER_POD_CONFIG.MIN, Math.min(PRICE_PER_POD_CONFIG.MAX, value)); + return formatPricePerPod(clamped); }; const useFilterTokens = () => { @@ -124,6 +138,7 @@ export default function CreateOrder() { const maxPlace = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; const [maxPlaceInLine, setMaxPlaceInLine] = useState(undefined); const [pricePerPod, setPricePerPod] = useState(undefined); + const [pricePerPodInput, setPricePerPodInput] = useState(""); // set preferred token useEffect(() => { @@ -144,7 +159,52 @@ export default function CreateOrder() { }); setTokenIn(newToken); }, - [tokenIn, mainToken], + [tokenIn], + ); + + // Price per pod slider handler + const handlePriceSliderChange = useCallback((value: number[]) => { + const formatted = formatPricePerPod(value[0]); + setPricePerPod(formatted); + setPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + }, []); + + // Price per pod input handlers + const handlePriceInputChange = useCallback((e: React.ChangeEvent) => { + const value = e.target.value; + setPricePerPodInput(value); + }, []); + + const handlePriceInputBlur = useCallback(() => { + const numValue = Number.parseFloat(pricePerPodInput); + if (!Number.isNaN(numValue)) { + const formatted = clampAndFormatPrice(numValue); + setPricePerPod(formatted); + setPricePerPodInput(formatted.toString()); + } else { + setPricePerPodInput(""); + setPricePerPod(undefined); + } + }, [pricePerPodInput]); + + // Max place in line slider handler + const handleMaxPlaceSliderChange = useCallback((value: number[]) => { + const newValue = Math.floor(value[0]); + setMaxPlaceInLine(newValue > 0 ? newValue : undefined); + }, []); + + // Max place in line input handler + const handleMaxPlaceInputChange = useCallback( + (e: React.ChangeEvent) => { + const cleanValue = e.target.value.replace(/,/g, ""); + const value = Number.parseInt(cleanValue); + if (!Number.isNaN(value) && value > 0 && value <= maxPlace) { + setMaxPlaceInLine(value); + } else if (cleanValue === "") { + setMaxPlaceInLine(undefined); + } + }, + [maxPlace], ); // invalidate pod orders query @@ -152,6 +212,7 @@ export default function CreateOrder() { setAmountIn(""); setMaxPlaceInLine(undefined); setPricePerPod(undefined); + setPricePerPodInput(""); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); }, [queryClient, allQK]); @@ -242,6 +303,7 @@ export default function CreateOrder() { diamondAddress, mainToken, swapBuild, + tokenIn.symbol, ]); const swapDataNotReady = (shouldSwap && (!swapData || !swapBuild)) || !!swapQuery.error; @@ -250,83 +312,157 @@ export default function CreateOrder() { const formIsFilled = !!pricePerPod && !!maxPlaceInLine && !!account && amountInTV.gt(0); const disabled = !formIsFilled || swapDataNotReady; + // Calculate orderRangeEnd for PodLineGraph overlay (memoized) + const orderRangeEnd = useMemo(() => { + if (!maxPlaceInLine) return undefined; + return harvestableIndex.add(TokenValue.fromHuman(maxPlaceInLine, PODS.decimals)); + }, [maxPlaceInLine, harvestableIndex]); + return (
-
+ {/* PodLineGraph Visualization */} + + + {/* Place in Line Slider */} +

I want to order Pods with a Place in Line up to:

- -
-
-

Amount I am willing to pay for each Pod

- -
-
-
-

Order Using

- -
- - {shouldSwap && amountInTV.gt(0) && ( - + {maxPlace === 0 ? ( +

No Pods in Line currently available to order.

+ ) : ( +
+
+

0

+ {maxPlace > 0 && ( + + )} +

{formatter.noDec(maxPlace)}

+
+ e.target.select()} + placeholder={formatter.noDec(maxPlace)} + outlined + containerClassName="w-[108px]" + className="" + disabled={maxPlace === 0} + /> +
)} - {slippageWarning}
-
- - {disabled && formIsFilled && ( -
- + + {/* Show these sections only when maxPlaceInLine is greater than 0 */} + {maxPlaceInLine !== undefined && maxPlaceInLine > 0 && ( +
+ {/* Price Per Pod */} +
+

Amount I am willing to pay for each Pod for:

+
+
+

0

+ +

1

+
+ e.target.select()} + placeholder="0.00" + outlined + containerClassName="" + className="" + endIcon={} + /> +
+
+ + {/* Order Using Section */} +
+
+

Order Using

+ +
+ + {shouldSwap && amountInTV.gt(0) && ( + + )} + {slippageWarning} +
+
+ + {disabled && formIsFilled && ( +
+ +
+ )} + {!disabled && ( + + )} +
+ {}} + className="flex-1" + /> + +
- )} - {!disabled && ( - - )} -
-
-
+ )}
); } From 58f68caa67a5b04868a6ae8df5645ad86f1e5daa Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 30 Oct 2025 06:55:14 +0300 Subject: [PATCH 09/54] Implement buy/fill UI --- src/components/PodLineGraph.tsx | 18 + src/pages/market/actions/FillListing.tsx | 537 ++++++++++++++++++----- 2 files changed, 436 insertions(+), 119 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index d785b812c..2d7eaffa3 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -31,6 +31,8 @@ interface PodLineGraphProps { selectedPodRange?: { start: TokenValue; end: TokenValue }; /** Optional: show order range overlay from 0 to this position (absolute index) */ orderRangeEnd?: TokenValue; + /** Optional: show range overlay from start to end position (absolute indices) */ + rangeOverlay?: { start: TokenValue; end: TokenValue }; /** Callback when a plot group is clicked - receives all plot indices in the group */ onPlotGroupSelect?: (plotIndices: string[]) => void; /** Additional CSS classes */ @@ -163,6 +165,7 @@ export default function PodLineGraph({ selectedPlotIndices = [], selectedPodRange, orderRangeEnd, + rangeOverlay, onPlotGroupSelect, className, }: PodLineGraphProps) { @@ -344,6 +347,21 @@ export default function PodLineGraph({ /> )} + {/* Range overlay (from start to end) */} + {rangeOverlay?.start.gte(harvestableIndex) && rangeOverlay?.end.gt(rangeOverlay.start) && ( +
+ )} + {/* Plot rectangles - grouped visually but individually interactive */}
{unharvestedPlots.map((group, groupIdx) => { diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index 062a2934c..a5334d995 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -1,12 +1,14 @@ import podIcon from "@/assets/protocol/Pod.png"; -import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; +import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SlippageButton from "@/components/SlippageButton"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; +import { MultiSlider, Slider } from "@/components/ui/Slider"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; import { PODS } from "@/constants/internalTokens"; import fillPodListing from "@/encoders/fillPodListing"; @@ -24,22 +26,40 @@ import usePriceImpactSummary from "@/hooks/wells/usePriceImpactSummary"; import usePodListings from "@/state/market/usePodListings"; import { useFarmerBalances } from "@/state/useFarmerBalances"; import { useFarmerPlotsQuery } from "@/state/useFarmerField"; -import { useHarvestableIndex } from "@/state/useFieldData"; +import { useHarvestableIndex, usePodIndex } from "@/state/useFieldData"; import { useQueryKeys } from "@/state/useQueryKeys"; import useTokenData from "@/state/useTokenData"; import { trackSimpleEvent } from "@/utils/analytics"; import { formatter } from "@/utils/format"; import { toSafeTVFromHuman } from "@/utils/number"; import { tokensEqual } from "@/utils/token"; -import { FarmFromMode, FarmToMode, Token } from "@/utils/types"; -import { getBalanceFromMode } from "@/utils/utils"; +import { FarmFromMode, FarmToMode, Plot, Token } from "@/utils/types"; +import { cn, getBalanceFromMode } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useEffect, useMemo, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { toast } from "sonner"; import { Address } from "viem"; import { useAccount } from "wagmi"; -import CancelListing from "./CancelListing"; + +// Configuration constants +const PRICE_PER_POD_CONFIG = { + MAX: 1, + MIN: 0, + DECIMALS: 6, + DECIMAL_MULTIPLIER: 1_000_000, // 10^6 for 6 decimals +} as const; + +const PRICE_SLIDER_STEP = 0.001; + +const TextAdornment = ({ text, className }: { text: string; className?: string }) => { + return
{text}
; +}; + +// Utility function to format and truncate price per pod values +const formatPricePerPod = (value: number): number => { + return Math.floor(value * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) / PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER; +}; const useFilterTokens = () => { const tokens = useTokenMap(); @@ -93,6 +113,20 @@ export default function FillListing() { const [balanceFrom, setBalanceFrom] = useState(FarmFromMode.INTERNAL_EXTERNAL); const [slippage, setSlippage] = useState(0.1); + // Price per pod filter state + const [maxPricePerPod, setMaxPricePerPod] = useState(0); + const [maxPricePerPodInput, setMaxPricePerPodInput] = useState("0"); + + // Place in line range state + const podIndex = usePodIndex(); + const maxPlace = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; + const [placeInLineRange, setPlaceInLineRange] = useState<[number, number]>([0, maxPlace]); + + // Update place in line range when maxPlace changes + useEffect(() => { + setPlaceInLineRange((prev) => [prev[0], maxPlace]); + }, [maxPlace]); + const isUsingMain = tokensEqual(tokenIn, mainToken); const amountInTV = useSafeTokenValue(amountIn, tokenIn); @@ -137,7 +171,146 @@ export default function FillListing() { }); setTokenIn(newToken); }, - [tokenIn, mainToken], + [tokenIn], + ); + + // Price per pod slider handler + const handlePriceSliderChange = useCallback((value: number[]) => { + const formatted = formatPricePerPod(value[0]); + setMaxPricePerPod(formatted); + setMaxPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + }, []); + + // Price per pod input handlers + const handlePriceInputChange = useCallback((e: React.ChangeEvent) => { + const value = e.target.value; + setMaxPricePerPodInput(value); + }, []); + + const handlePriceInputBlur = useCallback(() => { + const numValue = Number.parseFloat(maxPricePerPodInput); + if (!Number.isNaN(numValue)) { + const clamped = Math.max(0, Math.min(PRICE_PER_POD_CONFIG.MAX, numValue)); + const formatted = formatPricePerPod(clamped); + setMaxPricePerPod(formatted); + setMaxPricePerPodInput(formatted.toString()); + } else { + setMaxPricePerPodInput("0"); + setMaxPricePerPod(0); + } + }, [maxPricePerPodInput]); + + // Place in line range handler + const handlePlaceInLineRangeChange = useCallback((value: number[]) => { + const [min, max] = value; + setPlaceInLineRange([Math.floor(min), Math.floor(max)]); + }, []); + + // Place in line input handlers + const handleMinPlaceInputChange = useCallback( + (e: React.ChangeEvent) => { + const cleanValue = e.target.value.replace(/,/g, ""); + const value = Number.parseInt(cleanValue); + if (!Number.isNaN(value) && value >= 0 && value <= maxPlace) { + setPlaceInLineRange([value, placeInLineRange[1]]); + } else if (cleanValue === "") { + setPlaceInLineRange([0, placeInLineRange[1]]); + } + }, + [maxPlace, placeInLineRange], + ); + + const handleMaxPlaceInputChange = useCallback( + (e: React.ChangeEvent) => { + const cleanValue = e.target.value.replace(/,/g, ""); + const value = Number.parseInt(cleanValue); + if (!Number.isNaN(value) && value >= 0 && value <= maxPlace) { + setPlaceInLineRange([placeInLineRange[0], value]); + } else if (cleanValue === "") { + setPlaceInLineRange([placeInLineRange[0], maxPlace]); + } + }, + [maxPlace, placeInLineRange], + ); + + /** + * Convert all listings to Plot objects and determine eligible ones + * Eligible = matching both price criteria AND place in line range + */ + const { listingPlots, eligibleListingIds, rangeOverlay } = useMemo(() => { + if (!allListings?.podListings) { + return { listingPlots: [], eligibleListingIds: [], rangeOverlay: undefined }; + } + + // Convert all listings to Plot objects for graph visualization + const plots: Plot[] = allListings.podListings.map((listing) => ({ + index: TokenValue.fromBlockchain(listing.index, PODS.decimals), + pods: TokenValue.fromBlockchain(listing.remainingAmount, PODS.decimals), + harvestedPods: TokenValue.ZERO, + harvestablePods: TokenValue.ZERO, + id: listing.id, + idHex: listing.id, + })); + + // Calculate place in line boundaries for filtering + const minPlaceIndex = harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[0], PODS.decimals)); + const maxPlaceIndex = harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[1], PODS.decimals)); + + // Determine eligible listings (shown as green on graph) + // When maxPricePerPod is 0, no listings are eligible (all show as orange) + // When maxPricePerPod > 0, filter by both price and place in line + const eligible: string[] = + maxPricePerPod > 0 + ? allListings.podListings + .filter((listing) => { + const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); + const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); + + // Listing must match both criteria to be eligible + return ( + listingPrice <= maxPricePerPod && listingIndex.gte(minPlaceIndex) && listingIndex.lte(maxPlaceIndex) + ); + }) + .map((listing) => listing.id) + : []; + + // Calculate range overlay for visual feedback on graph + const overlay = { + start: harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[0], PODS.decimals)), + end: harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[1], PODS.decimals)), + }; + + return { listingPlots: plots, eligibleListingIds: eligible, rangeOverlay: overlay }; + }, [allListings, maxPricePerPod, placeInLineRange, mainToken.decimals, harvestableIndex]); + + // Calculate open available pods count (eligible listings only - already filtered by price AND place) + const openAvailablePods = useMemo(() => { + if (!allListings?.podListings.length) return 0; + + const eligibleSet = new Set(eligibleListingIds); + + return allListings.podListings.reduce((sum, listing) => { + // eligibleListingIds already contains listings that match both price and place criteria + if (!eligibleSet.has(listing.id)) return sum; + + const remainingAmount = TokenValue.fromBlockchain(listing.remainingAmount, PODS.decimals); + return sum + remainingAmount.toNumber(); + }, 0); + }, [allListings, eligibleListingIds]); + + // Plot selection handler - navigate to selected listing + const handlePlotGroupSelect = useCallback( + (plotIndices: string[]) => { + if (plotIndices.length > 0) { + const listingId = plotIndices[0]; + // Extract the index from the listing ID (format: "0-{index}") + const indexPart = listingId.split("-")[1]; + if (indexPart) { + navigate(`/market/pods/buy/${indexPart}`); + } + } + }, + [navigate], ); // reset form and invalidate pod listings/farmer plot queries @@ -154,29 +327,72 @@ export default function FillListing() { successCallback: onSuccess, }); - const placeInLine = TokenValue.fromBlockchain(listing?.index || 0n, PODS.decimals).sub(harvestableIndex); - const podsAvailable = TokenValue.fromBlockchain(listing?.amount || 0n, PODS.decimals); - const pricePerPod = TokenValue.fromBlockchain(listing?.pricePerPod || 0n, mainToken.decimals); - const mainTokensToFill = podsAvailable.mul(pricePerPod); const mainTokensIn = isUsingMain ? toSafeTVFromHuman(amountIn, mainToken.decimals) : swapData?.buyAmount; + // Calculate weighted average for eligible listings + const eligibleSummary = useMemo(() => { + if (!allListings?.podListings.length || eligibleListingIds.length === 0) { + return null; + } + + const eligibleSet = new Set(eligibleListingIds); + const eligibleListings = allListings.podListings.filter((l) => eligibleSet.has(l.id)); + + let totalValue = 0; + let totalPods = 0; + let totalPlaceInLine = 0; + + eligibleListings.forEach((listing) => { + const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); + const listingPods = TokenValue.fromBlockchain(listing.remainingAmount, PODS.decimals).toNumber(); + const listingPlace = TokenValue.fromBlockchain(listing.index, PODS.decimals).sub(harvestableIndex).toNumber(); + + totalValue += listingPrice * listingPods; + totalPods += listingPods; + totalPlaceInLine += listingPlace * listingPods; + }); + + const avgPricePerPod = totalPods > 0 ? totalValue / totalPods : 0; + const avgPlaceInLine = totalPods > 0 ? totalPlaceInLine / totalPods : 0; + + return { + avgPricePerPod: TokenValue.fromHuman(avgPricePerPod, mainToken.decimals), + avgPlaceInLine: TokenValue.fromHuman(avgPlaceInLine, PODS.decimals), + totalPods, + }; + }, [allListings, eligibleListingIds, mainToken.decimals, harvestableIndex]); + + // Calculate total tokens needed to fill eligible listings + const totalMainTokensToFill = useMemo(() => { + if (!eligibleSummary) return TokenValue.ZERO; + return eligibleSummary.avgPricePerPod.mul(TokenValue.fromHuman(eligibleSummary.totalPods, PODS.decimals)); + }, [eligibleSummary]); + const tokenInBalance = farmerBalances.balances.get(tokenIn); - const { data: maxFillAmount } = useMaxBuy(tokenIn, slippage, mainTokensToFill); + const { data: maxFillAmount } = useMaxBuy(tokenIn, slippage, totalMainTokensToFill); const balanceFromMode = getBalanceFromMode(tokenInBalance, balanceFrom); const balanceExceedsMax = balanceFromMode.gt(0) && maxFillAmount && balanceFromMode.gte(maxFillAmount); const onSubmit = useCallback(async () => { + // Validate requirements if (!listing) { + toast.error("No listing selected"); throw new Error("Listing not found"); } if (!account.address) { + toast.error("Please connect your wallet"); throw new Error("Signer required"); } + if (!eligibleListingIds.length) { + toast.error("No eligible listings available"); + throw new Error("No eligible listings"); + } // Track pod listing fill trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_LIST_FILL, { payment_token: tokenIn.symbol, balance_source: balanceFrom, + eligible_listings_count: eligibleListingIds.length, }); try { @@ -245,7 +461,7 @@ export default function FillListing() { } }, [ listing, - account, + account.address, amountIn, balanceFrom, swapBuild, @@ -255,134 +471,217 @@ export default function FillListing() { value, diamondAddress, mainToken, + eligibleListingIds.length, + tokenIn.symbol, ]); - const isOwnListing = listing && listing?.farmer.id === account.address?.toLowerCase(); - const disabled = !mainTokensIn || mainTokensIn.eq(0); + // Disable submit if no tokens entered, no eligible listings, or no listing selected + const disabled = !mainTokensIn || mainTokensIn.eq(0) || !eligibleListingIds.length || !listing; return ( -
- {!listing ? ( -
- Select a Listing on the panel to the left +
+ {/* PodLineGraph Visualization */} +
+ +
+ + {/* Max Price Per Pod Filter Section */} +
+

I am willing to buy Pods up to:

+
+
+

0

+ +

1

+
+ e.target.select()} + placeholder="0" + outlined + containerClassName="" + className="" + endIcon={} + />
- ) : ( - <> -
-
-
-

Seller

-

{listing.farmer.id.substring(0, 6)}

-
-
-

Place in Line

-

{placeInLine.toHuman("short")}

-
-
-

Pods Available

-
- {"pod -

{podsAvailable.toHuman("short")}

-
-
-
-

Price per Pod

-
- {"pinto -

{pricePerPod.toHuman()}

-
-
-
-

Pinto to Fill

-
- {"pinto -

{mainTokensToFill.toHuman()}

-
-
+
+ + {/* Place in Line Range Selector */} + {maxPlace > 0 && ( +
+

At a Place in Line between:

+ {/* Slider row */} +
+

0

+ +

{formatter.noDec(maxPlace)}

+
+ {/* Input row */} +
+ e.target.select()} + placeholder="0" + outlined + containerClassName="flex-1" + className="" + /> + — + e.target.select()} + placeholder={formatter.noDec(maxPlace)} + outlined + containerClassName="flex-1" + className="" + /> +
+
+ )} + + {/* Open Available Pods Display */} +
+

+ Open available pods: {formatter.noDec(openAvailablePods)} Pods +

+
+ + {/* Fill Using Section - Only show if there are eligible listings */} + {eligibleListingIds.length > 0 && ( +
+
+
+

Fill Using

+ +
+ + {!isUsingMain && amountInTV.gt(0) && ( + + )} + {slippageWarning} +
+
+ + {disabled && Number(amountIn) > 0 && ( +
+
- - {isOwnListing ? ( - - ) : ( - <> -
-
-

Fill Using

- -
- - {!isUsingMain && amountInTV.gt(0) && ( - - )} - {slippageWarning} -
-
- - {disabled && Number(amountIn) > 0 && ( -
- -
- )} - {!disabled && ( - - )} - -
- - )} + )} + {!disabled && eligibleSummary && mainTokensIn && ( + + )} +
+ {}} + className="flex-1" + /> +
- +
+
)}
); } +/** + * Displays summary of the fill transaction + * Shows estimated pods to receive, average position, and pricing details + */ const ActionSummary = ({ pricePerPod, plotPosition, beanAmount, -}: { pricePerPod: TV; plotPosition: TV; beanAmount: TV }) => { - const podAmount = beanAmount.div(pricePerPod); +}: { + pricePerPod: TV; + plotPosition: TV; + beanAmount: TV; +}) => { + // Calculate estimated pods to receive + const estimatedPods = beanAmount.div(pricePerPod); + return (
-

In exchange for {formatter.noDec(beanAmount)} Pinto, I will receive

+

You will receive approximately

- {"order - {formatter.number(podAmount, { minDecimals: 0, maxDecimals: 2 })} Pods + Pod icon + {formatter.number(estimatedPods, { minDecimals: 0, maxDecimals: 2 })} Pods +

+

@ average {plotPosition.toHuman("short")} in Line

+

+ for {formatter.number(beanAmount, { minDecimals: 0, maxDecimals: 2 })} Pinto at an average price of{" "} + {formatter.number(pricePerPod, { minDecimals: 2, maxDecimals: 6 })} per Pod

-

@ {plotPosition.toHuman("short")} in Line

); From b15c5ea84ada707f3b8abdfa8eb4ddf7496dcfc3 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 30 Oct 2025 23:00:51 +0300 Subject: [PATCH 10/54] Fix sell/list calculations --- src/pages/market/actions/CreateListing.tsx | 85 +++++++++++++- src/pages/market/actions/FillListing.tsx | 130 ++++++++++----------- 2 files changed, 145 insertions(+), 70 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 42be8d6c1..59d5390e9 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -27,6 +27,14 @@ import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; +interface PodListingData { + plot: Plot; + index: TokenValue; + start: TokenValue; // plot içindeki relative start + end: TokenValue; // plot içindeki relative end + amount: TokenValue; // list edilecek pod miktarı +} + const PRICE_PER_POD_CONFIG = { MAX: 1, MIN: 0.000001, @@ -132,6 +140,46 @@ export default function CreateListing() { }; }, [plot, podRange]); + // Convert pod range (offset based) to individual plot listing data + const listingData = useMemo((): PodListingData[] => { + if (plot.length === 0 || amount === 0) return []; + + const sortedPlots = [...plot].sort((a, b) => a.index.sub(b.index).toNumber()); + const result: PodListingData[] = []; + + // Calculate cumulative pod amounts to find which plots are affected + let cumulativeStart = 0; + const rangeStart = podRange[0]; + const rangeEnd = podRange[1]; + + for (const p of sortedPlots) { + const plotPods = p.pods.toNumber(); + const cumulativeEnd = cumulativeStart + plotPods; + + // Check if this plot is within the selected range + if (rangeEnd > cumulativeStart && rangeStart < cumulativeEnd) { + // Calculate the intersection + const startInPlot = Math.max(0, rangeStart - cumulativeStart); + const endInPlot = Math.min(plotPods, rangeEnd - cumulativeStart); + const amountInPlot = endInPlot - startInPlot; + + if (amountInPlot > 0) { + result.push({ + plot: p, + index: p.index, + start: TokenValue.fromHuman(startInPlot, PODS.decimals), + end: TokenValue.fromHuman(endInPlot, PODS.decimals), + amount: TokenValue.fromHuman(amountInPlot, PODS.decimals), + }); + } + } + + cumulativeStart = cumulativeEnd; + } + + return result; + }, [plot, podRange, amount]); + // Plot selection handler with tracking const handlePlotSelection = useCallback( (plots: Plot[]) => { @@ -274,7 +322,7 @@ export default function CreateListing() { ]); // ui state - const disabled = !pricePerPod || !amount || !account || plot.length !== 1; + const disabled = !pricePerPod || !amount || !account || plot.length === 0; return (
@@ -402,7 +450,14 @@ export default function CreateListing() { )}
- {!disabled && } + {!disabled && ( + + )} { + harvestableIndex, +}: { podAmount: number; listingData: PodListingData[]; pricePerPod: number; harvestableIndex: TokenValue }) => { const beansOut = podAmount * pricePerPod; + // Format line positions + const formatLinePositions = (): string => { + if (listingData.length === 0) return ""; + if (listingData.length === 1) { + const placeInLine = listingData[0].index.sub(harvestableIndex); + return `@ ${placeInLine.toHuman("short")} in Line`; + } + + // Multiple plots: show range + const sortedData = [...listingData].sort((a, b) => a.index.sub(b.index).toNumber()); + const firstPlace = sortedData[0].index.sub(harvestableIndex); + const lastPlace = sortedData[sortedData.length - 1].index.sub(harvestableIndex); + + if (firstPlace.eq(lastPlace)) { + return `@ ${firstPlace.toHuman("short")} in Line`; + } + return `@ ${firstPlace.toHuman("short")} - ${lastPlace.toHuman("short")} in Lines`; + }; + return (

If my listing is filled, I will receive

@@ -431,7 +506,7 @@ const ActionSummary = ({ {formatter.number(beansOut, { minDecimals: 0, maxDecimals: 2 })} Pinto

- in exchange for {formatter.noDec(podAmount)} Pods @ {plotPosition.toHuman("short")} in Line. + in exchange for {formatter.noDec(podAmount)} Pods {formatLinePositions()}.

diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index a5334d995..563c3e9b5 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -537,7 +537,9 @@ export default function FillListing() { max={maxPlace} className="flex-1 min-w-0" /> -

{formatter.noDec(maxPlace)}

+

+ {formatter.noDec(maxPlace)} +

{/* Input row */}
@@ -578,75 +580,73 @@ export default function FillListing() { {/* Fill Using Section - Only show if there are eligible listings */} {eligibleListingIds.length > 0 && (
-
-
-

Fill Using

- -
- - {!isUsingMain && amountInTV.gt(0) && ( - - )} - {slippageWarning} -
-
- - {disabled && Number(amountIn) > 0 && ( -
- +
+
+

Fill Using

+
- )} - {!disabled && eligibleSummary && mainTokensIn && ( - - )} -
- {}} - className="flex-1" - /> - + {!isUsingMain && amountInTV.gt(0) && ( + + )} + {slippageWarning} +
+
+ + {disabled && Number(amountIn) > 0 && ( +
+ +
+ )} + {!disabled && eligibleSummary && mainTokensIn && ( + + )} +
+ {}} + className="flex-1" + /> + +
-
)}
From 3693f7cd4762bf4a3c1aaa88cb4c240838c68d27 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 30 Oct 2025 23:28:32 +0300 Subject: [PATCH 11/54] Fix sell/list willing amount decimal --- src/pages/market/actions/CreateListing.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 59d5390e9..b99ebd67f 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -57,6 +57,11 @@ const clampAndFormatPrice = (value: number): number => { return formatPricePerPod(clamped); }; +// Utility function to remove trailing zeros from formatted price +const removeTrailingZeros = (value: string): string => { + return value.includes(".") ? value.replace(/\.?0+$/, "") : value; +}; + export default function CreateListing() { const { address: account } = useAccount(); const diamondAddress = useProtocolAddress(); @@ -220,7 +225,7 @@ export default function CreateListing() { const handlePriceSliderChange = useCallback((value: number[]) => { const formatted = formatPricePerPod(value[0]); setPricePerPod(formatted); - setPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); }, []); // Price per pod input handlers @@ -234,7 +239,7 @@ export default function CreateListing() { if (!Number.isNaN(numValue)) { const formatted = clampAndFormatPrice(numValue); setPricePerPod(formatted); - setPricePerPodInput(formatted.toString()); + setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); } else { setPricePerPodInput(""); setPricePerPod(undefined); @@ -404,7 +409,7 @@ export default function CreateListing() { Date: Fri, 31 Oct 2025 02:43:10 +0300 Subject: [PATCH 12/54] Batch listing and success component for sell/list --- src/pages/market/actions/CreateListing.tsx | 126 +++++++++++++++++---- 1 file changed, 103 insertions(+), 23 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index b99ebd67f..6786ecee7 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -4,6 +4,7 @@ import ComboPlotInputField from "@/components/ComboPlotInputField"; import PodLineGraph from "@/components/PodLineGraph"; import SimpleInputField from "@/components/SimpleInputField"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Button } from "@/components/ui/Button"; import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; import { MultiSlider, Slider } from "@/components/ui/Slider"; @@ -25,6 +26,7 @@ import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useMemo, useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; +import { encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; interface PodListingData { @@ -80,6 +82,9 @@ export default function CreateListing() { const [pricePerPod, setPricePerPod] = useState(undefined); const [pricePerPodInput, setPricePerPodInput] = useState(""); const [balanceTo, setBalanceTo] = useState(FarmToMode.EXTERNAL); // Default: Wallet Balance (toggle off) + const [isSuccessful, setIsSuccessful] = useState(false); + const [successAmount, setSuccessAmount] = useState(null); + const [successPrice, setSuccessPrice] = useState(null); const podIndex = usePodIndex(); const maxExpiration = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; const expiresIn = maxExpiration; // Auto-set to max expiration @@ -248,14 +253,16 @@ export default function CreateListing() { // reset form and invalidate pod listing query const onSuccess = useCallback(() => { - navigate(`/market/pods/buy/${plot[0].index.toBigInt()}`); + setSuccessAmount(amount); + setSuccessPrice(pricePerPod || 0); + setIsSuccessful(true); setPlot([]); setAmount(0); setPodRange([0, 0]); setPricePerPod(undefined); setPricePerPodInput(""); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); - }, [navigate, plot, queryClient, allQK]); + }, [amount, pricePerPod, queryClient, allQK]); // state for toast txns const { isConfirming, writeWithEstimateGas, submitting, setSubmitting } = useTransaction({ @@ -265,42 +272,89 @@ export default function CreateListing() { }); const onSubmit = useCallback(async () => { - if (!pricePerPod || pricePerPod <= 0 || !expiresIn || !amount || amount <= 0 || !account || plot.length !== 1) { + if ( + !pricePerPod || + pricePerPod <= 0 || + !expiresIn || + !amount || + amount <= 0 || + !account || + listingData.length === 0 + ) { return; } // Track pod listing creation trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_LIST_CREATE, { has_price_per_pod: !!pricePerPod, + listing_count: listingData.length, plot_position_millions: plot.length > 0 ? Math.round(plotPosition.div(1_000_000).toNumber()) : 0, }); const _pricePerPod = TokenValue.fromHuman(pricePerPod, mainToken.decimals); const _expiresIn = TokenValue.fromHuman(expiresIn, PODS.decimals); - const index = plot[0].index; - const start = TokenValue.fromHuman(0, PODS.decimals); - const _amount = TokenValue.fromHuman(amount, PODS.decimals); const maxHarvestableIndex = _expiresIn.add(harvestableIndex); try { setSubmitting(true); - toast.loading("Creating Listing..."); + toast.loading(`Creating ${listingData.length} Listing${listingData.length > 1 ? "s" : ""}...`); + + // Log listing data for debugging + // console.log("=== CREATE LISTING DATA ==="); + // console.log(`Total listings to create: ${listingData.length}`); + // console.log(`Price per pod: ${pricePerPod} ${mainToken.symbol}`); + + const farmData: `0x${string}`[] = []; + + // Create a listing call for each plot + for (const data of listingData) { + // console.log(`\n--- Listing ${index + 1} ---`); + // console.log(`Plot Index: ${data.index.toHuman()}`); + // console.log(`Start (relative): ${data.start.toHuman()}`); + // console.log(`End (relative): ${data.end.toHuman()}`); + // console.log(`Amount: ${data.amount.toHuman()} pods`); + // console.log(`Place in line: ${data.index.sub(harvestableIndex).toHuman()}`); + + const listingArgs = { + lister: account, + fieldId: 0n, + index: data.index.toBigInt(), + start: data.start.toBigInt(), + podAmount: data.amount.toBigInt(), + pricePerPod: Number(_pricePerPod), + maxHarvestableIndex: maxHarvestableIndex.toBigInt(), + minFillAmount: minFill.toBigInt(), + mode: Number(balanceTo), + }; + + // console.log("Encoded args:", { + // lister: listingArgs.lister, + // fieldId: listingArgs.fieldId.toString(), + // index: listingArgs.index.toString(), + // start: listingArgs.start.toString(), + // podAmount: listingArgs.podAmount.toString(), + // pricePerPod: listingArgs.pricePerPod, + // maxHarvestableIndex: listingArgs.maxHarvestableIndex.toString(), + // minFillAmount: listingArgs.minFillAmount.toString(), + // mode: listingArgs.mode, + // }); + + const listingCall = encodeFunctionData({ + abi: beanstalkAbi, + functionName: "createPodListing", + args: [listingArgs], + }); + farmData.push(listingCall); + } + + // console.log(`\nTotal farm calls: ${farmData.length}`); + // console.log("=========================\n"); + + // Use farm to batch all listings in one transaction writeWithEstimateGas({ address: diamondAddress, abi: beanstalkAbi, - functionName: "createPodListing", - args: [ - { - lister: account, - fieldId: 0n, - index: index.toBigInt(), - start: start.toBigInt(), - podAmount: _amount.toBigInt(), - pricePerPod: Number(_pricePerPod), - maxHarvestableIndex: maxHarvestableIndex.toBigInt(), - minFillAmount: minFill.toBigInt(), - mode: Number(balanceTo), - }, - ], + functionName: "farm", + args: [farmData], }); } catch (e: unknown) { console.error(e); @@ -319,6 +373,7 @@ export default function CreateListing() { harvestableIndex, minFill, plot, + listingData, plotPosition, setSubmitting, mainToken.decimals, @@ -466,11 +521,36 @@ export default function CreateListing() {
+ + {/* Success Screen */} + {isSuccessful && successAmount !== null && successPrice !== null && ( +
+ + +
+

+ You have successfully created a Pod Listing with {formatter.noDec(successAmount)} Pods at a price of{" "} + {formatter.number(successPrice, { minDecimals: 0, maxDecimals: 6 })} Pintos! +

+
+ +
+ +
+
+ )}
); } From d26980a7aa05ac289105ba12a9cf88c7d7bd6e3b Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 02:47:14 +0300 Subject: [PATCH 13/54] Add effective temperature to sell/list --- src/pages/market/actions/CreateListing.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 6786ecee7..05aeff77d 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -483,6 +483,15 @@ export default function CreateListing() { endIcon={} />
+ {/* Effective Temperature Display */} + {pricePerPod && pricePerPod > 0 && ( +
+

+ effective Temperature (i):{" "} + {formatter.noDec((1 / pricePerPod) * 100)}% +

+
+ )}
{/* Expires In - Auto-set to max expiration */} {/*
From bfa06015f1c383b321d1fbddb5690a265ae317a0 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 02:55:17 +0300 Subject: [PATCH 14/54] Add effective temperature to sell/fill Fix effective temperature decimal to 2 --- src/pages/market/actions/CreateListing.tsx | 4 +++- src/pages/market/actions/FillOrder.tsx | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 05aeff77d..b08549b00 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -488,7 +488,9 @@ export default function CreateListing() {

effective Temperature (i):{" "} - {formatter.noDec((1 / pricePerPod) * 100)}% + + {formatter.number((1 / pricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 })}% +

)} diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index 6f0910a23..140fce206 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -384,15 +384,24 @@ export default function FillOrder() { {/* Order Info Display - Based on selected range */}
-

- {ordersToFill.length > 1 ? "Weighted Avg Price/Pod" : "Price/Pod"} -

+

Average Price Per Pod

{formatter.number(weightedAvgPricePerPod, { minDecimals: 2, maxDecimals: 6 })} Pinto

+
+

Effective Temperature

+
+

+ {weightedAvgPricePerPod > 0 + ? formatter.number((1 / weightedAvgPricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 }) + : "0.00"} + % +

+
+
From 06ef58405dc1a452caf5d841c13dd6842f474e95 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 03:36:07 +0300 Subject: [PATCH 15/54] Implement batch sell to sell/fill Add success state after transaction --- src/pages/market/actions/FillOrder.tsx | 261 +++++++++++++++++++++---- 1 file changed, 220 insertions(+), 41 deletions(-) diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index 140fce206..0a28348de 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -2,6 +2,7 @@ import pintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import PodLineGraph from "@/components/PodLineGraph"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Button } from "@/components/ui/Button"; import { Separator } from "@/components/ui/Separator"; import { MultiSlider } from "@/components/ui/Slider"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; @@ -11,7 +12,7 @@ import { useProtocolAddress } from "@/hooks/pinto/useProtocolAddress"; import useTransaction from "@/hooks/useTransaction"; import usePodOrders from "@/state/market/usePodOrders"; import { useFarmerBalances } from "@/state/useFarmerBalances"; -import { useFarmerPlotsQuery } from "@/state/useFarmerField"; +import { useFarmerField, useFarmerPlotsQuery } from "@/state/useFarmerField"; import { useHarvestableIndex, usePodIndex } from "@/state/useFieldData"; import { useQueryKeys } from "@/state/useQueryKeys"; import useTokenData from "@/state/useTokenData"; @@ -20,8 +21,9 @@ import { formatter } from "@/utils/format"; import { FarmToMode, Plot } from "@/utils/types"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; -import { Address } from "viem"; +import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; import CancelOrder from "./CancelOrder"; @@ -31,7 +33,6 @@ import CancelOrder from "./CancelOrder"; // Constants const FIELD_ID = 0n; -const START_INDEX_WITHIN_PLOT = 0n; const MIN_PODS_THRESHOLD = 1; // Minimum pods required for order eligibility // Helper Functions @@ -77,6 +78,7 @@ export default function FillOrder() { const harvestableIndex = useHarvestableIndex(); const podIndex = usePodIndex(); const podLine = podIndex.sub(harvestableIndex); + const navigate = useNavigate(); const queryClient = useQueryClient(); const { @@ -93,12 +95,16 @@ export default function FillOrder() { [allPodOrders, allMarket, farmerMarket, farmerFieldQK, farmerPlotsQK, balanceQKs], ); - const [plot, setPlot] = useState([]); const [podRange, setPodRange] = useState<[number, number]>([0, 0]); const [selectedOrderIds, setSelectedOrderIds] = useState([]); + const [isSuccessful, setIsSuccessful] = useState(false); + const [successAmount, setSuccessAmount] = useState(null); + const [successAvgPrice, setSuccessAvgPrice] = useState(null); + const [successTotal, setSuccessTotal] = useState(null); const prevTotalCapacityRef = useRef(0); const selectedOrderIdsRef = useRef([]); + const successDataRef = useRef<{ amount: number; avgPrice: number; total: number } | null>(null); // Keep ref in sync and reset capacity ref when selection changes useEffect(() => { @@ -108,6 +114,7 @@ export default function FillOrder() { const podOrders = usePodOrders(); const allOrders = podOrders.data; + const farmerField = useFarmerField(); const { selectedOrders, orderPositions, totalCapacity } = useMemo(() => { if (!allOrders?.podOrders) return { selectedOrders: [], orderPositions: [], totalCapacity: 0 }; @@ -136,9 +143,7 @@ export default function FillOrder() { }; }, [allOrders?.podOrders, selectedOrderIds, mainToken.decimals]); - const order = selectedOrders[0]; const amount = podRange[1] - podRange[0]; - const amountToSell = TokenValue.fromHuman(amount || 0, PODS.decimals); const ordersToFill = useMemo(() => { const [rangeStart, rangeEnd] = podRange; @@ -156,7 +161,8 @@ export default function FillOrder() { order: pos.order, amount: fillAmount, }; - }); + }) + .filter((item) => item.amount > 0); }, [orderPositions, podRange]); // Calculate weighted average price per pod once for reuse @@ -178,8 +184,31 @@ export default function FillOrder() { const eligibleOrders = useMemo(() => { if (!allOrders?.podOrders) return []; - return allOrders.podOrders.filter((order) => isOrderEligible(order, mainToken.decimals, podLine)); - }, [allOrders?.podOrders, mainToken.decimals, podLine]); + // Get farmer's frontmost pod position (lowest index) + const farmerPlots = farmerField.plots; + const farmerFrontmostPodIndex = + farmerPlots.length > 0 + ? farmerPlots.reduce((min, plot) => (plot.index.lt(min) ? plot.index : min), farmerPlots[0].index) + : null; + + return allOrders.podOrders.filter((order) => { + // Check basic eligibility + if (!isOrderEligible(order, mainToken.decimals, podLine)) { + return false; + } + + // Check if farmer has pods that can fill this order + // Order's maxPlaceInLine + harvestableIndex must be >= farmer's frontmost pod index + if (!farmerFrontmostPodIndex) { + return false; // No pods available + } + + const orderMaxPlaceIndex = harvestableIndex.add(TokenValue.fromBlockchain(order.maxPlaceInLine, PODS.decimals)); + + // Farmer's pod must be at or before the order's maxPlaceInLine position + return farmerFrontmostPodIndex.lte(orderMaxPlaceIndex); + }); + }, [allOrders?.podOrders, mainToken.decimals, podLine, farmerField.plots, harvestableIndex]); useEffect(() => { if (totalCapacity !== prevTotalCapacityRef.current) { @@ -219,7 +248,16 @@ export default function FillOrder() { }, []); const onSuccess = useCallback(() => { - setPlot([]); + // Set success state from ref (to avoid stale closure) + if (successDataRef.current) { + const { amount, avgPrice, total } = successDataRef.current; + setSuccessAmount(amount); + setSuccessAvgPrice(avgPrice); + setSuccessTotal(total); + setIsSuccessful(true); + successDataRef.current = null; // Clear ref after use + } + setPodRange([0, 0]); setSelectedOrderIds([]); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); @@ -231,48 +269,155 @@ export default function FillOrder() { successCallback: onSuccess, }); - const onSubmit = useCallback(() => { - if (!order || !plot[0]) { + const onSubmit = useCallback(async () => { + if (ordersToFill.length === 0 || !account || farmerField.plots.length === 0) { return; } - trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_ORDER_FILL, { - order_price_per_pod: Number(order.pricePerPod), - order_max_place: Number(order.maxPlaceInLine), + // Reset success state when starting new transaction + setIsSuccessful(false); + setSuccessAmount(null); + setSuccessAvgPrice(null); + setSuccessTotal(null); + + // Save success data to ref (to avoid stale closure in onSuccess callback) + successDataRef.current = { + amount, + avgPrice: weightedAvgPricePerPod, + total: amount * weightedAvgPricePerPod, + }; + + // Track analytics for each order being filled + ordersToFill.forEach(({ order: orderToFill }) => { + trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_ORDER_FILL, { + order_price_per_pod: Number(orderToFill.pricePerPod), + order_max_place: Number(orderToFill.maxPlaceInLine), + }); }); try { setSubmitting(true); - toast.loading("Filling Order..."); + toast.loading(`Filling ${ordersToFill.length} Order${ordersToFill.length !== 1 ? "s" : ""}...`); + + // Sort farmer plots by index to use them in order (only sort once) + const sortedPlots = [...farmerField.plots].sort((a, b) => a.index.sub(b.index).toNumber()); + + if (sortedPlots.length === 0) { + throw new Error("No pods available to fill orders"); + } + + // Allocate pods from plots to orders + let plotIndex = 0; + let remainingPodsInCurrentPlot = sortedPlots[0].pods.toNumber(); + let currentPlot = sortedPlots[0]; + let currentPlotStartOffset = 0; + + const farmData: `0x${string}`[] = []; + + for (const { order: orderToFill, amount: fillAmount } of ordersToFill) { + let remainingAmount = fillAmount; + const orderMaxPlaceIndex = harvestableIndex.add( + TokenValue.fromBlockchain(orderToFill.maxPlaceInLine, PODS.decimals), + ); + + // Continue using plots until we have enough pods to fill this order + while (remainingAmount > 0 && plotIndex < sortedPlots.length) { + // Move to next plot if current one is exhausted + if (remainingPodsInCurrentPlot === 0) { + plotIndex++; + if (plotIndex >= sortedPlots.length) { + throw new Error( + `Insufficient pods in your plots to fill order. Need ${remainingAmount.toFixed(2)} more pods.`, + ); + } + currentPlot = sortedPlots[plotIndex]; + remainingPodsInCurrentPlot = currentPlot.pods.toNumber(); + currentPlotStartOffset = 0; + } + + // Validate that plot position is valid for this order + if (currentPlot.index.gt(orderMaxPlaceIndex)) { + throw new Error( + `Your pod at position ${currentPlot.index.toHuman()} is too far in line for order (max: ${orderMaxPlaceIndex.toHuman()})`, + ); + } + + const podsToUse = Math.min(remainingAmount, remainingPodsInCurrentPlot); + const podAmount = TokenValue.fromHuman(podsToUse, PODS.decimals); + const startOffset = TokenValue.fromHuman(currentPlotStartOffset, PODS.decimals); + + // Create fillPodOrder call for this order with pod allocation from current plot + const fillOrderArgs = { + orderer: orderToFill.farmer.id as Address, + fieldId: FIELD_ID, + maxPlaceInLine: BigInt(orderToFill.maxPlaceInLine), + pricePerPod: Number(orderToFill.pricePerPod), + minFillAmount: BigInt(orderToFill.minFillAmount), + }; + + const fillCall = encodeFunctionData({ + abi: beanstalkAbi, + functionName: "fillPodOrder", + args: [ + fillOrderArgs, + currentPlot.index.toBigInt(), + startOffset.toBigInt(), + podAmount.toBigInt(), + Number(FarmToMode.INTERNAL), + ], + }); + + farmData.push(fillCall); + + // Update tracking variables + remainingAmount -= podsToUse; + remainingPodsInCurrentPlot -= podsToUse; + currentPlotStartOffset += podsToUse; + } + + // Validate all pods were allocated + if (remainingAmount > 0) { + throw new Error( + `Insufficient pods in your plots to fill order. Need ${remainingAmount.toFixed(2)} more pods.`, + ); + } + } + + if (farmData.length === 0) { + throw new Error("No valid fill operations to execute"); + } + + // Use farm to batch all order fills in one transaction + // Success state will be set in onSuccess callback via ref writeWithEstimateGas({ address: diamondAddress, abi: beanstalkAbi, - functionName: "fillPodOrder", - args: [ - { - orderer: order.farmer.id as Address, - fieldId: FIELD_ID, - maxPlaceInLine: BigInt(order.maxPlaceInLine), - pricePerPod: Number(order.pricePerPod), - minFillAmount: BigInt(order.minFillAmount), - }, - plot[0].index.toBigInt(), - START_INDEX_WITHIN_PLOT, - amountToSell.toBigInt(), - Number(FarmToMode.INTERNAL), - ], + functionName: "farm", + args: [farmData], }); } catch (e) { - console.error(e); + console.error("Fill order error:", e); toast.dismiss(); - toast.error("Order Fill Failed"); - throw e; - } finally { + const errorMessage = + e instanceof Error ? e.message : "Order Fill Failed. Please check your pod balance and try again."; + toast.error(errorMessage); setSubmitting(false); } - }, [order, plot, amountToSell, writeWithEstimateGas, setSubmitting, diamondAddress]); - - const isOwnOrder = order && order.farmer.id === account.address?.toLowerCase(); + }, [ + ordersToFill, + account, + farmerField.plots, + writeWithEstimateGas, + setSubmitting, + diamondAddress, + amount, + weightedAvgPricePerPod, + harvestableIndex, + ]); + + const isOwnOrder = useMemo(() => { + return selectedOrders.some((order) => order.farmer.id === account.address?.toLowerCase()); + }, [selectedOrders, account.address]); if (eligibleOrders.length === 0) { return ( @@ -328,10 +473,14 @@ export default function FillOrder() {
{/* Show cancel option if user owns an order */} - {isOwnOrder && order && ( + {isOwnOrder && selectedOrders.length > 0 && ( <> - + {selectedOrders + .filter((order) => order.farmer.id === account.address?.toLowerCase()) + .map((order) => ( + + ))} )} @@ -419,14 +568,44 @@ export default function FillOrder() {
); })()} + + {/* Success Screen */} + {isSuccessful && successAmount !== null && successAvgPrice !== null && successTotal !== null && ( +
+ + +
+

+ You have successfully filled {formatter.noDec(successAmount)} Pods at an average price of{" "} + {formatter.number(successAvgPrice, { minDecimals: 2, maxDecimals: 6 })} Pintos per Pod, for a total of{" "} + {formatter.number(successTotal, { minDecimals: 0, maxDecimals: 2 })} Pintos! +

+
+ +
+ +
+
+ )}
); } From 8d52d648fcdd59da0610d32bbfc62d354c27295f Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 04:04:41 +0300 Subject: [PATCH 16/54] Add SmartApprovalButton --- src/components/SmartApprovalButton.tsx | 254 +++++++++++++++++++++++ src/pages/market/actions/CreateOrder.tsx | 8 +- 2 files changed, 259 insertions(+), 3 deletions(-) create mode 100644 src/components/SmartApprovalButton.tsx diff --git a/src/components/SmartApprovalButton.tsx b/src/components/SmartApprovalButton.tsx new file mode 100644 index 000000000..f1384e644 --- /dev/null +++ b/src/components/SmartApprovalButton.tsx @@ -0,0 +1,254 @@ +import { TokenValue } from "@/classes/TokenValue"; +import { diamondABI } from "@/constants/abi/diamondABI"; +import { ZERO_ADDRESS } from "@/constants/address"; +import { useProtocolAddress } from "@/hooks/pinto/useProtocolAddress"; +import useTransaction from "@/hooks/useTransaction"; +import { useFarmerBalances } from "@/state/useFarmerBalances"; +import { toSafeTVFromHuman } from "@/utils/number"; +import { FarmFromMode, Token } from "@/utils/types"; +import { exists } from "@/utils/utils"; +import { useQueryClient } from "@tanstack/react-query"; +import { useCallback, useEffect, useMemo, useState } from "react"; +import { toast } from "sonner"; +import { Address, erc20Abi } from "viem"; +import { useAccount, useReadContract } from "wagmi"; +import { Button, ButtonProps } from "./ui/Button"; + +type ApprovalState = "idle" | "approving" | "approved"; + +interface SmartApprovalButton extends Omit { + token?: Token; + amount?: string; + callback?: () => void; + className?: string; + disabled?: boolean; + balanceFrom?: FarmFromMode; + spender?: Address; + requiresDiamondAllowance?: boolean; + forceApproval?: boolean; +} + +export default function SmartApprovalButton({ + token, + amount, + callback, + className, + disabled, + balanceFrom, + spender, + requiresDiamondAllowance, + forceApproval, + ...props +}: SmartApprovalButton) { + const account = useAccount(); + const queryClient = useQueryClient(); + const farmerBalances = useFarmerBalances().balances; + const diamond = useProtocolAddress(); + const baseAllowanceQueryEnabled = !!account.address && !!token && !token.isNative; + const [approvalState, setApprovalState] = useState("idle"); + + const { + data: tokenAllowance, + isFetching: tokenAllowanceFetching, + queryKey: tokenAllowanceQueryKey, + } = useReadContract({ + abi: erc20Abi, + address: token?.address, + functionName: "allowance", + scopeKey: "allowance", + args: [account.address ?? ZERO_ADDRESS, spender ?? diamond], + query: { + enabled: baseAllowanceQueryEnabled && !requiresDiamondAllowance, + }, + }); + + const { + data: diamondAllowance, + isFetching: diamondAllowanceFetching, + queryKey: diamondAllowanceQueryKey, + } = useReadContract({ + abi: diamondABI, + address: diamond, + functionName: "tokenAllowance", + args: [account.address ?? ZERO_ADDRESS, spender ?? ZERO_ADDRESS, token?.address ?? ZERO_ADDRESS], + query: { + enabled: baseAllowanceQueryEnabled && requiresDiamondAllowance && !!spender, + }, + }); + + const allowance = requiresDiamondAllowance ? diamondAllowance : tokenAllowance; + const allowanceFetching = requiresDiamondAllowance ? diamondAllowanceFetching : tokenAllowanceFetching; + const allowanceQueryKey = requiresDiamondAllowance ? diamondAllowanceQueryKey : tokenAllowanceQueryKey; + + const onSuccess = useCallback(() => { + queryClient.invalidateQueries({ queryKey: allowanceQueryKey }); + setApprovalState("approved"); + callback?.(); + }, [queryClient, allowanceQueryKey, callback]); + + const onError = useCallback(() => { + setApprovalState("idle"); + return false; // Let the hook handle the error toast + }, []); + + const { + submitting: submittingApproval, + isConfirming: isConfirmingApproval, + setSubmitting: setSubmittingApproval, + writeWithEstimateGas, + error: approvalError, + } = useTransaction({ + successCallback: onSuccess, + successMessage: "Approval success", + errorMessage: "Approval failed", + onError, + }); + + // Reset approval state on error + useEffect(() => { + if (approvalError && approvalState === "approving") { + setApprovalState("idle"); + } + }, [approvalError, approvalState]); + + const needsApproval = useMemo(() => { + if (!token || !exists(balanceFrom) || token.isNative) { + return false; + } + + // Convert amount to TokenValue for comparison + const inputAmount = toSafeTVFromHuman(amount ?? "", token); + + // Get internal balance + const tokenBalances = farmerBalances.get(token); + const internalBalance = tokenBalances?.internal ?? TokenValue.ZERO; + + // Get allowance + const allowanceAmount = TokenValue.fromBlockchain(allowance || 0, token.decimals); + + // If allowance covers the full amount, no approval needed + if (allowanceAmount.gte(inputAmount)) { + return false; + } else if (requiresDiamondAllowance) { + return allowanceAmount.lt(inputAmount); + } else { + // Balance doesn't cover full amount + switch (balanceFrom) { + case FarmFromMode.EXTERNAL: + return true; + case FarmFromMode.INTERNAL: + return false; + case FarmFromMode.INTERNAL_EXTERNAL: + // Need approval if amount exceeds internal balance + return inputAmount.gt(internalBalance); + default: + return false; + } + } + }, [allowance, farmerBalances, amount, token, balanceFrom, requiresDiamondAllowance]); + + // Update approval state when submitting/confirming + useEffect(() => { + if (submittingApproval || isConfirmingApproval) { + setApprovalState("approving"); + } + }, [submittingApproval, isConfirmingApproval]); + + // Check if already approved based on allowance + const isApproved = useMemo(() => { + if (!token || token.isNative || !allowance) return false; + if (!amount) return false; + + const inputAmount = toSafeTVFromHuman(amount, token); + const allowanceAmount = TokenValue.fromBlockchain(allowance, token.decimals); + return allowanceAmount.gte(inputAmount); + }, [token, allowance, amount]); + + // Update approval state when allowance changes + useEffect(() => { + if (!allowanceFetching) { + if (isApproved) { + setApprovalState("approved"); + } else if (approvalState === "approved" && !isApproved) { + // If allowance was revoked or changed, reset to idle + setApprovalState("idle"); + } + } + }, [isApproved, allowanceFetching, approvalState]); + + async function handleApprove() { + if ((!forceApproval && !needsApproval) || !token || !exists(amount)) return; + + try { + setSubmittingApproval(true); + setApprovalState("approving"); + toast.loading("Approving..."); + + const inputAmount = toSafeTVFromHuman(amount, token); + + if (requiresDiamondAllowance) { + if (!spender) throw new Error("Spender required"); + + await writeWithEstimateGas({ + abi: diamondABI, + address: diamond, + functionName: "approveToken", + args: [spender, token.address, inputAmount.toBigInt()], + }); + } else { + await writeWithEstimateGas({ + abi: erc20Abi, + address: token.address ?? ZERO_ADDRESS, + functionName: "approve", + args: [spender ?? diamond, inputAmount.toBigInt()], + }); + } + } catch (e) { + console.error(e); + setApprovalState("idle"); + toast.dismiss(); + toast.error("Approval failed"); + throw e; + } finally { + setSubmittingApproval(false); + } + } + + const isApproving = approvalState === "approving" || submittingApproval || isConfirmingApproval; + const isDisabled = + disabled || + allowanceFetching || + isApproving || + (!forceApproval && approvalState === "approved") || + (!forceApproval && !needsApproval); + + const getButtonText = () => { + if (isApproving) { + return "Approving"; + } + if (approvalState === "approved") { + return "Approved"; + } + return "Approve"; + }; + + return ( + + ); +} diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index e38c970b0..003fc7545 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -6,6 +6,7 @@ import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SimpleInputField from "@/components/SimpleInputField"; import SlippageButton from "@/components/SlippageButton"; +import SmartApprovalButton from "@/components/SmartApprovalButton"; import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; @@ -440,12 +441,13 @@ export default function CreateOrder() { )}
- {}} className="flex-1" /> Date: Fri, 31 Oct 2025 04:19:44 +0300 Subject: [PATCH 17/54] Improve graph interactions on buy/order --- src/components/PodLineGraph.tsx | 13 ++++++--- src/pages/market/actions/CreateListing.tsx | 5 ++-- src/pages/market/actions/CreateOrder.tsx | 34 +++++++++++++++++----- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 2d7eaffa3..42595475a 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -35,6 +35,8 @@ interface PodLineGraphProps { rangeOverlay?: { start: TokenValue; end: TokenValue }; /** Callback when a plot group is clicked - receives all plot indices in the group */ onPlotGroupSelect?: (plotIndices: string[]) => void; + /** Disable hover and click interactions */ + disableInteractions?: boolean; /** Additional CSS classes */ className?: string; } @@ -167,6 +169,7 @@ export default function PodLineGraph({ orderRangeEnd, rangeOverlay, onPlotGroupSelect, + disableInteractions = false, className, }: PodLineGraphProps) { const farmerField = useFarmerField(); @@ -425,6 +428,7 @@ export default function PodLineGraph({ // Handle group click - select all plots in the group const handleGroupClick = () => { + if (disableInteractions) return; if (onPlotGroupSelect) { // Send all plot IDs or indices in the group // Prefer 'id' if available (for order markers), otherwise use index @@ -450,15 +454,16 @@ export default function PodLineGraph({ {/* Base rectangle (background color) */}
setHoveredPlotIndex(groupFirstPlotIndex)} - onMouseLeave={() => setHoveredPlotIndex(null)} + onClick={disableInteractions ? undefined : handleGroupClick} + onMouseEnter={disableInteractions ? undefined : () => setHoveredPlotIndex(groupFirstPlotIndex)} + onMouseLeave={disableInteractions ? undefined : () => setHoveredPlotIndex(null)} /> {/* Partial selection overlay (green) */} diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index b08549b00..3d7bee6b2 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -291,7 +291,8 @@ export default function CreateListing() { plot_position_millions: plot.length > 0 ? Math.round(plotPosition.div(1_000_000).toNumber()) : 0, }); - const _pricePerPod = TokenValue.fromHuman(pricePerPod, mainToken.decimals); + // pricePerPod should be encoded as uint24 with 6 decimals (0.5 * 1_000_000 = 500000) + const encodedPricePerPod = pricePerPod ? Math.floor(pricePerPod * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) : 0; const _expiresIn = TokenValue.fromHuman(expiresIn, PODS.decimals); const maxHarvestableIndex = _expiresIn.add(harvestableIndex); try { @@ -320,7 +321,7 @@ export default function CreateListing() { index: data.index.toBigInt(), start: data.start.toBigInt(), podAmount: data.amount.toBigInt(), - pricePerPod: Number(_pricePerPod), + pricePerPod: encodedPricePerPod, maxHarvestableIndex: maxHarvestableIndex.toBigInt(), minFillAmount: minFill.toBigInt(), mode: Number(balanceTo), diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 003fc7545..14c4ecbaf 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -59,6 +59,11 @@ const clampAndFormatPrice = (value: number): number => { return formatPricePerPod(clamped); }; +// Utility function to remove trailing zeros from formatted price +const removeTrailingZeros = (value: string): string => { + return value.includes(".") ? value.replace(/\.?0+$/, "") : value; +}; + const useFilterTokens = () => { const tokens = useTokenMap(); const isWSOL = useIsWSOL(); @@ -167,7 +172,7 @@ export default function CreateOrder() { const handlePriceSliderChange = useCallback((value: number[]) => { const formatted = formatPricePerPod(value[0]); setPricePerPod(formatted); - setPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); }, []); // Price per pod input handlers @@ -181,7 +186,7 @@ export default function CreateOrder() { if (!Number.isNaN(numValue)) { const formatted = clampAndFormatPrice(numValue); setPricePerPod(formatted); - setPricePerPodInput(formatted.toString()); + setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); } else { setPricePerPodInput(""); setPricePerPod(undefined); @@ -257,13 +262,14 @@ export default function CreateOrder() { : undefined; const _maxPlaceInLine = TokenValue.fromHuman(maxPlaceInLine?.toString() || "0", PODS.decimals); - const _pricePerPod = TokenValue.fromHuman(pricePerPod?.toString() || "0", mainToken.decimals); + // pricePerPod should be encoded as uint24 with 6 decimals (0.5 * 1_000_000 = 500000) + const encodedPricePerPod = pricePerPod ? Math.floor(pricePerPod * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) : 0; const minFill = TokenValue.fromHuman("1", PODS.decimals); const orderCallStruct = createPodOrder( account, _amount, - Number(_pricePerPod), + encodedPricePerPod, _maxPlaceInLine, minFill, fromMode, @@ -322,7 +328,7 @@ export default function CreateOrder() { return (
{/* PodLineGraph Visualization */} - + {/* Place in Line Slider */}
@@ -373,7 +379,7 @@ export default function CreateOrder() { } />
+ {/* Effective Temperature Display */} + {pricePerPod && pricePerPod > 0 && ( +
+

+ effective Temperature (i):{" "} + + {formatter.number((1 / pricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 })}% + +

+
+ )}
{/* Order Using Section */} @@ -474,7 +491,10 @@ const ActionSummary = ({ pricePerPod, maxPlaceInLine, }: { beansIn: TV; pricePerPod: number; maxPlaceInLine: number }) => { - const podsOut = beansIn.div(TokenValue.fromHuman(pricePerPod, 6)); + // pricePerPod is Pinto per Pod (0-1), convert to TokenValue with same decimals as beansIn (mainToken decimals) + // Then divide to get pods and convert to Pods decimals + const pricePerPodTV = TokenValue.fromHuman(pricePerPod.toString(), beansIn.decimals); + const podsOut = beansIn.div(pricePerPodTV).reDecimal(PODS.decimals); return (
From a7e7c60d08dec30a95614cb9ae9f4dd68866a45e Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 04:23:10 +0300 Subject: [PATCH 18/54] Add success component to buy/order --- src/pages/market/actions/CreateOrder.tsx | 75 +++++++++++++++++++++++- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 14c4ecbaf..6e9758fa9 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -8,6 +8,7 @@ import SimpleInputField from "@/components/SimpleInputField"; import SlippageButton from "@/components/SlippageButton"; import SmartApprovalButton from "@/components/SmartApprovalButton"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Button } from "@/components/ui/Button"; import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; import { Slider } from "@/components/ui/Slider"; @@ -33,7 +34,8 @@ import { tokensEqual } from "@/utils/token"; import { FarmFromMode, FarmToMode, Token } from "@/utils/types"; import { cn } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; @@ -104,6 +106,13 @@ export default function CreateOrder() { const [tokenIn, setTokenIn] = useState(preferredToken); const [balanceFrom, setBalanceFrom] = useState(FarmFromMode.INTERNAL_EXTERNAL); const [slippage, setSlippage] = useState(0.1); + const [isSuccessful, setIsSuccessful] = useState(false); + const [successPods, setSuccessPods] = useState(null); + const [successPricePerPod, setSuccessPricePerPod] = useState(null); + const [successAmountIn, setSuccessAmountIn] = useState(null); + const navigate = useNavigate(); + + const successDataRef = useRef<{ pods: number; pricePerPod: number; amountIn: string } | null>(null); const shouldSwap = !tokensEqual(tokenIn, mainToken); @@ -213,8 +222,25 @@ export default function CreateOrder() { [maxPlace], ); + // Calculate pods out for success message + const podsOut = useMemo(() => { + if (!pricePerPod || pricePerPod <= 0 || beansInOrder.isZero) return 0; + const pricePerPodTV = TokenValue.fromHuman(pricePerPod.toString(), beansInOrder.decimals); + return beansInOrder.div(pricePerPodTV).reDecimal(PODS.decimals).toNumber(); + }, [beansInOrder, pricePerPod]); + // invalidate pod orders query const onSuccess = useCallback(() => { + // Set success state from ref (to avoid stale closure) + if (successDataRef.current) { + const { pods, pricePerPod, amountIn } = successDataRef.current; + setSuccessPods(pods); + setSuccessPricePerPod(pricePerPod); + setSuccessAmountIn(amountIn); + setIsSuccessful(true); + successDataRef.current = null; // Clear ref after use + } + setAmountIn(""); setMaxPlaceInLine(undefined); setPricePerPod(undefined); @@ -231,6 +257,19 @@ export default function CreateOrder() { // submit txn const onSubmit = useCallback(async () => { + // Reset success state when starting new transaction + setIsSuccessful(false); + setSuccessPods(null); + setSuccessPricePerPod(null); + setSuccessAmountIn(null); + + // Save success data to ref (to avoid stale closure in onSuccess callback) + successDataRef.current = { + pods: podsOut, + pricePerPod: pricePerPod || 0, + amountIn: amountIn, + }; + // Track pod order creation trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_ORDER_CREATE, { payment_token: tokenIn.symbol, @@ -311,6 +350,9 @@ export default function CreateOrder() { mainToken, swapBuild, tokenIn.symbol, + podsOut, + pricePerPod, + amountIn, ]); const swapDataNotReady = (shouldSwap && (!swapData || !swapBuild)) || !!swapQuery.error; @@ -470,9 +512,9 @@ export default function CreateOrder() {
)} + + {/* Success Screen */} + {isSuccessful && successPods !== null && successPricePerPod !== null && successAmountIn !== null && ( +
+ + +
+

+ You have successfully placed an order for {formatter.noDec(successPods)} Pods at{" "} + {formatter.number(successPricePerPod, { minDecimals: 2, maxDecimals: 6 })} Pintos per Pod, with{" "} + {formatter.number(Number.parseFloat(successAmountIn) || 0, { minDecimals: 0, maxDecimals: 2 })}{" "} + {tokenIn.symbol}! +

+
+ +
+ +
+
+ )}
); } From 9d1de8c395569a97f7fc72d136b9f53799256608 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 04:38:47 +0300 Subject: [PATCH 19/54] Improve UI on buy/fill --- src/pages/market/actions/FillListing.tsx | 120 +++++++++++++++++------ 1 file changed, 90 insertions(+), 30 deletions(-) diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index 563c3e9b5..ebc532148 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -5,7 +5,9 @@ import FrameAnimator from "@/components/LoadingSpinner"; import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SlippageButton from "@/components/SlippageButton"; +import SmartApprovalButton from "@/components/SmartApprovalButton"; import SmartSubmitButton from "@/components/SmartSubmitButton"; +import { Button } from "@/components/ui/Button"; import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; import { MultiSlider, Slider } from "@/components/ui/Slider"; @@ -36,7 +38,7 @@ import { tokensEqual } from "@/utils/token"; import { FarmFromMode, FarmToMode, Plot, Token } from "@/utils/types"; import { cn, getBalanceFromMode } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { toast } from "sonner"; import { Address } from "viem"; @@ -112,10 +114,15 @@ export default function FillListing() { const [tokenIn, setTokenIn] = useState(mainToken); const [balanceFrom, setBalanceFrom] = useState(FarmFromMode.INTERNAL_EXTERNAL); const [slippage, setSlippage] = useState(0.1); + const [isSuccessful, setIsSuccessful] = useState(false); + const [successPods, setSuccessPods] = useState(null); + const [successAvgPrice, setSuccessAvgPrice] = useState(null); + const [successTotal, setSuccessTotal] = useState(null); + const successDataRef = useRef<{ pods: number; avgPrice: number; total: number } | null>(null); // Price per pod filter state const [maxPricePerPod, setMaxPricePerPod] = useState(0); - const [maxPricePerPodInput, setMaxPricePerPodInput] = useState("0"); + const [maxPricePerPodInput, setMaxPricePerPodInput] = useState("0.000000"); // Place in line range state const podIndex = usePodIndex(); @@ -178,7 +185,7 @@ export default function FillListing() { const handlePriceSliderChange = useCallback((value: number[]) => { const formatted = formatPricePerPod(value[0]); setMaxPricePerPod(formatted); - setMaxPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + setMaxPricePerPodInput(formatted.toFixed(6)); }, []); // Price per pod input handlers @@ -193,9 +200,9 @@ export default function FillListing() { const clamped = Math.max(0, Math.min(PRICE_PER_POD_CONFIG.MAX, numValue)); const formatted = formatPricePerPod(clamped); setMaxPricePerPod(formatted); - setMaxPricePerPodInput(formatted.toString()); + setMaxPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); } else { - setMaxPricePerPodInput("0"); + setMaxPricePerPodInput("0.000000"); setMaxPricePerPod(0); } }, [maxPricePerPodInput]); @@ -298,28 +305,22 @@ export default function FillListing() { }, 0); }, [allListings, eligibleListingIds]); - // Plot selection handler - navigate to selected listing - const handlePlotGroupSelect = useCallback( - (plotIndices: string[]) => { - if (plotIndices.length > 0) { - const listingId = plotIndices[0]; - // Extract the index from the listing ID (format: "0-{index}") - const indexPart = listingId.split("-")[1]; - if (indexPart) { - navigate(`/market/pods/buy/${indexPart}`); - } - } - }, - [navigate], - ); - // reset form and invalidate pod listings/farmer plot queries const onSuccess = useCallback(() => { - navigate(`/market/pods/buy/fill`); + // Set success state from ref (to avoid stale closure) + if (successDataRef.current) { + const { pods, avgPrice, total } = successDataRef.current; + setSuccessPods(pods); + setSuccessAvgPrice(avgPrice); + setSuccessTotal(total); + setIsSuccessful(true); + successDataRef.current = null; // Clear ref after use + } + setAmountIn(""); resetSwap(); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); - }, [navigate, resetSwap, queryClient, allQK]); + }, [resetSwap, queryClient, allQK]); const { writeWithEstimateGas, submitting, isConfirming, setSubmitting } = useTransaction({ successMessage: "Listing Fill successful", @@ -388,6 +389,25 @@ export default function FillListing() { throw new Error("No eligible listings"); } + // Reset success state when starting new transaction + setIsSuccessful(false); + setSuccessPods(null); + setSuccessAvgPrice(null); + setSuccessTotal(null); + + // Calculate and save success data to ref (to avoid stale closure in onSuccess callback) + if (eligibleSummary && mainTokensIn) { + const estimatedPods = mainTokensIn.div(eligibleSummary.avgPricePerPod).toNumber(); + const avgPrice = eligibleSummary.avgPricePerPod.toNumber(); + const total = mainTokensIn.toNumber(); + + successDataRef.current = { + pods: estimatedPods, + avgPrice, + total, + }; + } + // Track pod listing fill trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_LIST_FILL, { payment_token: tokenIn.symbol, @@ -473,6 +493,8 @@ export default function FillListing() { mainToken, eligibleListingIds.length, tokenIn.symbol, + eligibleSummary, + mainTokensIn, ]); // Disable submit if no tokens entered, no eligible listings, or no listing selected @@ -486,7 +508,7 @@ export default function FillListing() { plots={listingPlots} selectedPlotIndices={listing ? [listing.id] : eligibleListingIds} rangeOverlay={rangeOverlay} - onPlotGroupSelect={handlePlotGroupSelect} + disableInteractions={true} />
@@ -513,13 +535,24 @@ export default function FillListing() { onChange={handlePriceInputChange} onBlur={handlePriceInputBlur} onFocus={(e) => e.target.select()} - placeholder="0" + placeholder="0.000000" outlined containerClassName="" className="" endIcon={} />
+ {/* Effective Temperature Display */} + {maxPricePerPod > 0 && ( +
+

+ effective Temperature (i):{" "} + + {formatter.number((1 / maxPricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 })}% + +

+
+ )}
{/* Place in Line Range Selector */} @@ -626,29 +659,56 @@ export default function FillListing() { /> )}
- {}} + token={tokenIn} + amount={amountIn} + balanceFrom={balanceFrom} + disabled={disabled || !ackSlippage || isConfirming || submitting || isSuccessful} className="flex-1" />
)} + + {/* Success Screen */} + {isSuccessful && successPods !== null && successAvgPrice !== null && successTotal !== null && ( +
+ + +
+

+ You've successfully purchased {formatter.noDec(successPods)} Pods for{" "} + {formatter.number(successTotal, { minDecimals: 0, maxDecimals: 2 })} Pinto, for an average price of{" "} + {formatter.number(successAvgPrice, { minDecimals: 2, maxDecimals: 6 })} Pintos per Pod! +

+
+ +
+ +
+
+ )}
); } From 2b5caaa31bb644457ab6a6e00f298076caa45197 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 04:46:25 +0300 Subject: [PATCH 20/54] Implement contrat interactions for buy/fill --- src/pages/market/actions/FillListing.tsx | 195 +++++++++++++++-------- 1 file changed, 132 insertions(+), 63 deletions(-) diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index ebc532148..058cf690a 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -39,9 +39,9 @@ import { FarmFromMode, FarmToMode, Plot, Token } from "@/utils/types"; import { cn, getBalanceFromMode } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { useNavigate, useParams } from "react-router-dom"; +import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; -import { Address } from "viem"; +import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; // Configuration constants @@ -105,9 +105,7 @@ export default function FillListing() { }); const podListings = usePodListings(); - const { id } = useParams(); const allListings = podListings.data; - const listing = allListings?.podListings.find((listing) => listing.index === id); const [didSetPreferred, setDidSetPreferred] = useState(false); const [amountIn, setAmountIn] = useState(""); @@ -330,27 +328,67 @@ export default function FillListing() { const mainTokensIn = isUsingMain ? toSafeTVFromHuman(amountIn, mainToken.decimals) : swapData?.buyAmount; - // Calculate weighted average for eligible listings - const eligibleSummary = useMemo(() => { + // Get eligible listings sorted by price (cheapest first) + const eligibleListings = useMemo(() => { if (!allListings?.podListings.length || eligibleListingIds.length === 0) { - return null; + return []; } const eligibleSet = new Set(eligibleListingIds); - const eligibleListings = allListings.podListings.filter((l) => eligibleSet.has(l.id)); + return allListings.podListings + .filter((l) => eligibleSet.has(l.id)) + .sort((a, b) => { + const priceA = TokenValue.fromBlockchain(a.pricePerPod, mainToken.decimals).toNumber(); + const priceB = TokenValue.fromBlockchain(b.pricePerPod, mainToken.decimals).toNumber(); + return priceA - priceB; // Sort by price ascending (cheapest first) + }); + }, [allListings, eligibleListingIds, mainToken.decimals]); + + // Calculate which listings to fill and how much from each (based on mainTokensIn) + const listingsToFill = useMemo(() => { + if (!mainTokensIn || mainTokensIn.eq(0) || eligibleListings.length === 0) { + return []; + } + + const result: Array<{ listing: (typeof eligibleListings)[0]; beanAmount: TokenValue }> = []; + let remainingBeans = mainTokensIn; + + for (const listing of eligibleListings) { + if (remainingBeans.lte(0)) break; + + const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals); + const listingRemainingPods = TokenValue.fromBlockchain(listing.remainingAmount, PODS.decimals); + const maxBeansForListing = listingRemainingPods.mul(listingPrice); + + // Take the minimum of: remaining beans and max beans we can spend on this listing + const beansToSpend = TokenValue.min(remainingBeans, maxBeansForListing); + if (beansToSpend.gt(0)) { + result.push({ listing, beanAmount: beansToSpend }); + remainingBeans = remainingBeans.sub(beansToSpend); + } + } + + return result; + }, [mainTokensIn, eligibleListings, mainToken.decimals]); + + // Calculate weighted average for eligible listings + const eligibleSummary = useMemo(() => { + if (listingsToFill.length === 0) { + return null; + } let totalValue = 0; let totalPods = 0; let totalPlaceInLine = 0; - eligibleListings.forEach((listing) => { - const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); - const listingPods = TokenValue.fromBlockchain(listing.remainingAmount, PODS.decimals).toNumber(); - const listingPlace = TokenValue.fromBlockchain(listing.index, PODS.decimals).sub(harvestableIndex).toNumber(); + listingsToFill.forEach(({ listing, beanAmount }) => { + const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals); + const podsFromListing = beanAmount.div(listingPrice); + const listingPlace = TokenValue.fromBlockchain(listing.index, PODS.decimals).sub(harvestableIndex); - totalValue += listingPrice * listingPods; - totalPods += listingPods; - totalPlaceInLine += listingPlace * listingPods; + totalValue += listingPrice.toNumber() * podsFromListing.toNumber(); + totalPods += podsFromListing.toNumber(); + totalPlaceInLine += listingPlace.toNumber() * podsFromListing.toNumber(); }); const avgPricePerPod = totalPods > 0 ? totalValue / totalPods : 0; @@ -361,7 +399,7 @@ export default function FillListing() { avgPlaceInLine: TokenValue.fromHuman(avgPlaceInLine, PODS.decimals), totalPods, }; - }, [allListings, eligibleListingIds, mainToken.decimals, harvestableIndex]); + }, [listingsToFill, mainToken.decimals, harvestableIndex]); // Calculate total tokens needed to fill eligible listings const totalMainTokensToFill = useMemo(() => { @@ -376,17 +414,17 @@ export default function FillListing() { const onSubmit = useCallback(async () => { // Validate requirements - if (!listing) { - toast.error("No listing selected"); - throw new Error("Listing not found"); - } if (!account.address) { toast.error("Please connect your wallet"); throw new Error("Signer required"); } - if (!eligibleListingIds.length) { - toast.error("No eligible listings available"); - throw new Error("No eligible listings"); + if (listingsToFill.length === 0) { + toast.error("No eligible listings to fill"); + throw new Error("No listings to fill"); + } + if (!mainTokensIn || mainTokensIn.eq(0)) { + toast.error("No amount specified"); + throw new Error("Amount required"); } // Reset success state when starting new transaction @@ -412,54 +450,86 @@ export default function FillListing() { trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_LIST_FILL, { payment_token: tokenIn.symbol, balance_source: balanceFrom, - eligible_listings_count: eligibleListingIds.length, + eligible_listings_count: listingsToFill.length, }); try { setSubmitting(true); - toast.loading("Filling Listing..."); + toast.loading(`Filling ${listingsToFill.length} Listing${listingsToFill.length !== 1 ? "s" : ""}...`); + if (isUsingMain) { + // Direct fill - create farm calls for each listing + const farmData: `0x${string}`[] = []; + + for (const { listing, beanAmount } of listingsToFill) { + // Encode pricePerPod with 6 decimals (like CreateOrder.tsx) + const pricePerPodNumber = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); + const encodedPricePerPod = Math.floor(pricePerPodNumber * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER); + + const fillCall = encodeFunctionData({ + abi: beanstalkAbi, + functionName: "fillPodListing", + args: [ + { + lister: listing.farmer.id as Address, + fieldId: 0n, + index: TokenValue.fromBlockchain(listing.index, PODS.decimals).toBigInt(), + start: TokenValue.fromBlockchain(listing.start, PODS.decimals).toBigInt(), + podAmount: TokenValue.fromBlockchain(listing.amount, PODS.decimals).toBigInt(), + pricePerPod: encodedPricePerPod, + maxHarvestableIndex: TokenValue.fromBlockchain(listing.maxHarvestableIndex, PODS.decimals).toBigInt(), + minFillAmount: TokenValue.fromBlockchain(listing.minFillAmount, mainToken.decimals).toBigInt(), + mode: Number(listing.mode), + }, + beanAmount.toBigInt(), + Number(balanceFrom), + ], + }); + + farmData.push(fillCall); + } + + if (farmData.length === 0) { + throw new Error("No valid fill operations to execute"); + } + + // Use farm to batch all listing fills in one transaction return writeWithEstimateGas({ address: diamondAddress, abi: beanstalkAbi, - functionName: "fillPodListing", - args: [ - { - lister: listing.farmer.id as Address, // account - fieldId: 0n, // fieldId - index: TokenValue.fromBlockchain(listing.index, PODS.decimals).toBigInt(), // index - start: TokenValue.fromBlockchain(listing.start, PODS.decimals).toBigInt(), // start - podAmount: TokenValue.fromBlockchain(listing.amount, PODS.decimals).toBigInt(), // amount - pricePerPod: Number(TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals)), // pricePerPod - maxHarvestableIndex: TokenValue.fromBlockchain(listing.maxHarvestableIndex, PODS.decimals).toBigInt(), // maxHarvestableIndex - minFillAmount: TokenValue.fromBlockchain(listing.minFillAmount, mainToken.decimals).toBigInt(), // minFillAmount, measured in Beans - mode: Number(listing.mode), // mode - }, - toSafeTVFromHuman(amountIn, mainToken.decimals).toBigInt(), // amountIn - Number(balanceFrom), // fromMode - ], + functionName: "farm", + args: [farmData], }); } else if (swapBuild?.advancedFarm.length) { + // Swap + fill - use advancedFarm const { clipboard } = await swapBuild.deriveClipboardWithOutputToken(mainToken, 9, account.address, { value: value ?? TV.ZERO, }); const advFarm = [...swapBuild.advancedFarm]; - advFarm.push( - fillPodListing( - listing.farmer.id as Address, // account - TokenValue.fromBlockchain(listing.index, PODS.decimals), // index - TokenValue.fromBlockchain(listing.start, PODS.decimals), // start - TokenValue.fromBlockchain(listing.amount, PODS.decimals), // amount - Number(TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals)), // pricePerPod - TokenValue.fromBlockchain(listing.maxHarvestableIndex, PODS.decimals), // maxHarvestableIndex - TokenValue.fromBlockchain(listing.minFillAmount, mainToken.decimals), // minFillAmount, measured in Beans - Number(listing.mode), // mode - TV.ZERO, // amountIn (from clipboard) - FarmFromMode.INTERNAL, // fromMode + + // Add fillPodListing calls for each listing + for (const { listing, beanAmount } of listingsToFill) { + // Encode pricePerPod with 6 decimals (like CreateOrder.tsx) + const pricePerPodNumber = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); + const encodedPricePerPod = Math.floor(pricePerPodNumber * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER); + + const fillCall = fillPodListing( + listing.farmer.id as Address, + TokenValue.fromBlockchain(listing.index, PODS.decimals), + TokenValue.fromBlockchain(listing.start, PODS.decimals), + TokenValue.fromBlockchain(listing.amount, PODS.decimals), + encodedPricePerPod, + TokenValue.fromBlockchain(listing.maxHarvestableIndex, PODS.decimals), + TokenValue.fromBlockchain(listing.minFillAmount, mainToken.decimals), + Number(listing.mode), + beanAmount, + FarmFromMode.INTERNAL, clipboard, - ), - ); + ); + + advFarm.push(fillCall); + } return writeWithEstimateGas({ address: diamondAddress, @@ -474,15 +544,16 @@ export default function FillListing() { } catch (e) { console.error(e); toast.dismiss(); - toast.error("Listing Fill Failed"); + const errorMessage = e instanceof Error ? e.message : "Listing Fill Failed"; + toast.error(errorMessage); throw e; } finally { setSubmitting(false); } }, [ - listing, account.address, - amountIn, + listingsToFill, + mainTokensIn, balanceFrom, swapBuild, writeWithEstimateGas, @@ -491,14 +562,12 @@ export default function FillListing() { value, diamondAddress, mainToken, - eligibleListingIds.length, tokenIn.symbol, eligibleSummary, - mainTokensIn, ]); - // Disable submit if no tokens entered, no eligible listings, or no listing selected - const disabled = !mainTokensIn || mainTokensIn.eq(0) || !eligibleListingIds.length || !listing; + // Disable submit if no tokens entered, no eligible listings, or no listings to fill + const disabled = !mainTokensIn || mainTokensIn.eq(0) || listingsToFill.length === 0; return (
@@ -506,7 +575,7 @@ export default function FillListing() {
From efd2bdaac946a22f82b5c7fb7dc7a1c8f7269255 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 05:00:51 +0300 Subject: [PATCH 21/54] Change tab trigger - buy/sell pods --- src/pages/market/MarketModeSelect.tsx | 32 +++++++++++++++++----- src/pages/market/actions/CreateListing.tsx | 2 +- src/pages/market/actions/CreateOrder.tsx | 2 +- src/pages/market/actions/FillListing.tsx | 2 +- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/pages/market/MarketModeSelect.tsx b/src/pages/market/MarketModeSelect.tsx index a351b44e6..2e5c5e118 100644 --- a/src/pages/market/MarketModeSelect.tsx +++ b/src/pages/market/MarketModeSelect.tsx @@ -4,7 +4,7 @@ import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; import { useFarmerField } from "@/state/useFarmerField"; import { trackSimpleEvent } from "@/utils/analytics"; import { useCallback } from "react"; -import { useNavigate, useParams, useSearchParams } from "react-router-dom"; +import { useNavigate, useParams } from "react-router-dom"; interface MarketModeSelectProps { onMainSelectionChange?: (v: string) => void; @@ -57,12 +57,30 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel return (
- - - Buy Pods - Sell Pods - - +
+ + +
{mainTab ? ( <> {mainTab === "sell" && hasNoPods ? ( diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 3d7bee6b2..ec622a3dc 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -488,7 +488,7 @@ export default function CreateListing() { {pricePerPod && pricePerPod > 0 && (

- effective Temperature (i):{" "} + Effective Temperature (i):{" "} {formatter.number((1 / pricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 })}% diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 6e9758fa9..17d1da441 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -446,7 +446,7 @@ export default function CreateOrder() { {pricePerPod && pricePerPod > 0 && (

- effective Temperature (i):{" "} + Effective Temperature (i):{" "} {formatter.number((1 / pricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 })}% diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index 058cf690a..32f368729 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -615,7 +615,7 @@ export default function FillListing() { {maxPricePerPod > 0 && (

- effective Temperature (i):{" "} + Effective Temperature (i):{" "} {formatter.number((1 / maxPricePerPod) * 100, { minDecimals: 2, maxDecimals: 2 })}% From e69caee50a8be64e37cd17c6e415b556801e8e2d Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 05:19:25 +0300 Subject: [PATCH 22/54] Add buy/sell redirect from chart --- src/pages/Market.tsx | 4 ++-- src/pages/market/MarketActivityTable.tsx | 4 ++-- src/pages/market/PodListingsTable.tsx | 2 +- src/pages/market/PodOrdersTable.tsx | 2 +- src/pages/market/actions/FillListing.tsx | 30 +++++++++++++++++++++++- src/pages/market/actions/FillOrder.tsx | 18 +++++++++++++- 6 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index eb9e223f7..a9834ddf9 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -286,9 +286,9 @@ export function Market() { }); if (dataPoint.eventType === "LISTING") { - navigate(`/market/pods/buy/${dataPoint.eventIndex.toString().replace(".", "")}`); + navigate(`/market/pods/buy/fill?listingId=${dataPoint.eventId}`); } else { - navigate(`/market/pods/sell/${dataPoint.eventId.replace(".", "")}`); + navigate(`/market/pods/sell/fill?orderId=${dataPoint.eventId}`); } }; diff --git a/src/pages/market/MarketActivityTable.tsx b/src/pages/market/MarketActivityTable.tsx index a5bc0b2e6..fc191f05e 100644 --- a/src/pages/market/MarketActivityTable.tsx +++ b/src/pages/market/MarketActivityTable.tsx @@ -38,9 +38,9 @@ export function MarketActivityTable({ marketData, titleText, farmer }: MarketAct if (event.status === "ACTIVE") { if (event.type === "LISTING") { const listingEvent = event as Listing; - navigate(`/market/pods/buy/${listingEvent.index}`); + navigate(`/market/pods/buy/fill?listingId=${listingEvent.id}`); } else { - navigate(`/market/pods/sell/${event.id}`); + navigate(`/market/pods/sell/fill?orderId=${event.id}`); } } }, diff --git a/src/pages/market/PodListingsTable.tsx b/src/pages/market/PodListingsTable.tsx index 8a8375550..f7e47d15f 100644 --- a/src/pages/market/PodListingsTable.tsx +++ b/src/pages/market/PodListingsTable.tsx @@ -32,7 +32,7 @@ export function PodListingsTable() { const navigate = useNavigate(); const navigateTo = useCallback( (id: string) => { - navigate(`/market/pods/buy/${id}`); + navigate(`/market/pods/buy/fill?listingId=${id}`); }, [navigate], ); diff --git a/src/pages/market/PodOrdersTable.tsx b/src/pages/market/PodOrdersTable.tsx index 21e34480b..fb60e64b3 100644 --- a/src/pages/market/PodOrdersTable.tsx +++ b/src/pages/market/PodOrdersTable.tsx @@ -42,7 +42,7 @@ export function PodOrdersTable() { const navigate = useNavigate(); const navigateTo = useCallback( (id: string) => { - navigate(`/market/pods/sell/${id}`); + navigate(`/market/pods/sell/fill?orderId=${id}`); }, [navigate], ); diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index 32f368729..e14f3bbbd 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -39,7 +39,7 @@ import { FarmFromMode, FarmToMode, Plot, Token } from "@/utils/types"; import { cn, getBalanceFromMode } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { useNavigate } from "react-router-dom"; +import { useNavigate, useSearchParams } from "react-router-dom"; import { toast } from "sonner"; import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; @@ -86,6 +86,8 @@ export default function FillListing() { const farmerBalances = useFarmerBalances(); const harvestableIndex = useHarvestableIndex(); const navigate = useNavigate(); + const [searchParams] = useSearchParams(); + const listingId = searchParams.get("listingId"); const filterTokens = useFilterTokens(); @@ -166,6 +168,32 @@ export default function FillListing() { } }, [preferredToken, preferredLoading, didSetPreferred]); + // Pre-fill form when listingId parameter is present (clicked from chart) + useEffect(() => { + if (!listingId || !allListings?.podListings || maxPlace === 0) return; + + // Find the listing with matching ID + const listing = allListings.podListings.find((l) => l.id === listingId); + if (!listing) return; + + // Pre-fill price per pod + const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); + const formattedPrice = formatPricePerPod(listingPrice); + setMaxPricePerPod(formattedPrice); + setMaxPricePerPodInput(formattedPrice.toFixed(6)); + + // Calculate listing's place in line + const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); + const placeInLine = listingIndex.sub(harvestableIndex).toNumber(); + + // Set place in line range to include this listing with a small margin + // Clamp to valid range [0, maxPlace] + const margin = Math.max(1, Math.floor(maxPlace * 0.01)); // 1% margin or at least 1 + const minPlace = Math.max(0, Math.floor(placeInLine - margin)); + const maxPlaceValue = Math.min(maxPlace, Math.ceil(placeInLine + margin)); + setPlaceInLineRange([minPlace, maxPlaceValue]); + }, [listingId, allListings, maxPlace, mainToken.decimals, harvestableIndex]); + // Token selection handler with tracking const handleTokenSelection = useCallback( (newToken: Token) => { diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index 0a28348de..6f856a23a 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -21,7 +21,7 @@ import { formatter } from "@/utils/format"; import { FarmToMode, Plot } from "@/utils/types"; import { useQueryClient } from "@tanstack/react-query"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { useNavigate } from "react-router-dom"; +import { useNavigate, useSearchParams } from "react-router-dom"; import { toast } from "sonner"; import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; @@ -79,6 +79,8 @@ export default function FillOrder() { const podIndex = usePodIndex(); const podLine = podIndex.sub(harvestableIndex); const navigate = useNavigate(); + const [searchParams] = useSearchParams(); + const orderId = searchParams.get("orderId"); const queryClient = useQueryClient(); const { @@ -217,6 +219,20 @@ export default function FillOrder() { } }, [totalCapacity]); + // Pre-select order when orderId parameter is present (clicked from chart) + useEffect(() => { + if (!orderId || !allOrders?.podOrders) return; + + // Find the order with matching ID + const order = allOrders.podOrders.find((o) => o.id === orderId); + if (!order) return; + + // Add order to selection if not already selected + if (!selectedOrderIds.includes(orderId)) { + setSelectedOrderIds((prev) => [...prev, orderId]); + } + }, [orderId, allOrders, selectedOrderIds]); + const orderMarkers = useMemo(() => { if (eligibleOrders.length === 0) return []; From cc4fbf210f713a42ab67a5a84ede7165da01d1c8 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 05:28:07 +0300 Subject: [PATCH 23/54] Add content header to Market page --- src/components/ReadMoreAccordion.tsx | 32 +++++++++++++++++++++++++++- src/pages/Market.tsx | 17 +++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/components/ReadMoreAccordion.tsx b/src/components/ReadMoreAccordion.tsx index 44a066310..4a8046057 100644 --- a/src/components/ReadMoreAccordion.tsx +++ b/src/components/ReadMoreAccordion.tsx @@ -7,8 +7,14 @@ interface IReadMoreAccordion { children: React.ReactNode; defaultOpen?: boolean; onChange?: (open: boolean) => void; + inline?: boolean; } -export default function ReadMoreAccordion({ children, defaultOpen = false, onChange }: IReadMoreAccordion) { +export default function ReadMoreAccordion({ + children, + defaultOpen = false, + onChange, + inline = false, +}: IReadMoreAccordion) { const [open, setOpen] = useState(defaultOpen); const handleToggle = () => { @@ -17,6 +23,30 @@ export default function ReadMoreAccordion({ children, defaultOpen = false, onCha onChange?.(newValue); }; + if (inline) { + return ( + + + {open && {children}} + + + {open ? " Read less" : " Read more"} + + + ); + } + return ( diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index a9834ddf9..b09e8167d 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -2,6 +2,7 @@ import PodIcon from "@/assets/protocol/Pod.png"; import PintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import FrameAnimator from "@/components/LoadingSpinner"; +import ReadMoreAccordion from "@/components/ReadMoreAccordion"; import ScatterChart from "@/components/charts/ScatterChart"; import { Separator } from "@/components/ui/Separator"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; @@ -304,6 +305,22 @@ export function Market() {

+
+
Market
+
+ Buy and sell Pods on the open market. + + The Pod Market is a decentralized marketplace where users can trade Pods, which are protocol-native debt + instruments that represent future Pinto tokens. When you buy Pods, you're essentially purchasing the + right to redeem them for Pinto tokens at a fixed rate when they become harvestable. The market operates + on a first-in-first-out (FIFO) basis, meaning the oldest Pods become harvestable first. You can place + buy orders to acquire Pods at a specific price, or create listings to sell your existing Pods to other + users. The scatter chart above visualizes all active orders and listings, showing their place in line + and price per Pod. This allows you to see market depth and make informed trading decisions based on + current market conditions and your investment strategy. + +
+
From 136bf4b5598297797c49c8c5b44567bf40ae8cec Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 05:32:59 +0300 Subject: [PATCH 24/54] Add graph label parameter --- src/components/PodLineGraph.tsx | 5 ++++- src/pages/market/actions/CreateListing.tsx | 1 + src/pages/market/actions/CreateOrder.tsx | 2 +- src/pages/market/actions/FillListing.tsx | 1 + src/pages/market/actions/FillOrder.tsx | 3 ++- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 42595475a..8b49634f4 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -39,6 +39,8 @@ interface PodLineGraphProps { disableInteractions?: boolean; /** Additional CSS classes */ className?: string; + /** Optional: custom label text (default: "My Pods In Line") */ + label?: string; } /** @@ -171,6 +173,7 @@ export default function PodLineGraph({ onPlotGroupSelect, disableInteractions = false, className, + label = "My Pods In Line", }: PodLineGraphProps) { const farmerField = useFarmerField(); const harvestableIndex = useHarvestableIndex(); @@ -242,7 +245,7 @@ export default function PodLineGraph({
{/* Label */}
-

My Pods In Line

+

{label}

{/* Plot container with border */} diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index ec622a3dc..6330ed9e4 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -395,6 +395,7 @@ export default function CreateListing() { p.index.toHuman())} selectedPodRange={selectedPodRange} + label="My Pods In Line" onPlotGroupSelect={(plotIndices) => { // Check if all plots in the group are already selected const allSelected = plotIndices.every((index) => plot.some((p) => p.index.toHuman() === index)); diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 17d1da441..2485dd87d 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -370,7 +370,7 @@ export default function CreateOrder() { return (
{/* PodLineGraph Visualization */} - + {/* Place in Line Slider */}
diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index e14f3bbbd..2fd87591a 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -606,6 +606,7 @@ export default function FillListing() { selectedPlotIndices={eligibleListingIds} rangeOverlay={rangeOverlay} disableInteractions={true} + label="Available Listings" />
diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index 6f856a23a..539e2e295 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -440,7 +440,7 @@ export default function FillOrder() {

Select the order you want to fill (i):

- +

There are no open orders that can be filled with your Pods.

@@ -459,6 +459,7 @@ export default function FillOrder() { item.order.id)} + label="Open Orders" onPlotGroupSelect={(plotIndices) => { // Multi-select toggle: add or remove clicked order if (plotIndices.length > 0) { From f399da3011b53bd58f75cf702cc2b948612ec03a Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 05:46:28 +0300 Subject: [PATCH 25/54] Add multiple select on graph --- src/pages/market/actions/CreateListing.tsx | 40 ++++++++++++++++------ src/pages/market/actions/FillOrder.tsx | 28 +++++++++------ 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 6330ed9e4..73ef2d19c 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -197,11 +197,14 @@ export default function CreateListing() { plot_count: plots.length, previous_count: plot.length, }); - setPlot(plots); - - // Reset range when plots change - if (plots.length > 0) { - const totalPods = plots.reduce((sum, p) => sum + p.pods.toNumber(), 0); + + // Sort plots by index to ensure consistent ordering + const sortedPlots = [...plots].sort((a, b) => a.index.sub(b.index).toNumber()); + setPlot(sortedPlots); + + // Reset range when plots change - slider always starts from first plot and ends at last plot + if (sortedPlots.length > 0) { + const totalPods = sortedPlots.reduce((sum, p) => sum + p.pods.toNumber(), 0); setPodRange([0, totalPods]); setAmount(totalPods); } else { @@ -397,17 +400,32 @@ export default function CreateListing() { selectedPodRange={selectedPodRange} label="My Pods In Line" onPlotGroupSelect={(plotIndices) => { + // Find all plots in the clicked group from farmer plots + const plotsInGroup = farmerField.plots.filter((p) => plotIndices.includes(p.index.toHuman())); + + if (plotsInGroup.length === 0) return; + // Check if all plots in the group are already selected const allSelected = plotIndices.every((index) => plot.some((p) => p.index.toHuman() === index)); if (allSelected) { - // Deselect if already selected - setPlot([]); + // Deselect only this group - remove plots from this group + const updatedPlots = plot.filter((p) => !plotIndices.includes(p.index.toHuman())); + handlePlotSelection(updatedPlots); } else { - // Find and select all plots in the group from farmer plots - const plotsToSelect = farmerField.plots.filter((p) => plotIndices.includes(p.index.toHuman())); - if (plotsToSelect.length > 0) { - handlePlotSelection(plotsToSelect); + // Add this group to existing selection - merge with current selection (avoid duplicates) + const plotIndexSet = new Set(plot.map((p) => p.index.toHuman())); + const newPlots = [...plot]; + + plotsInGroup.forEach((plotToAdd) => { + if (!plotIndexSet.has(plotToAdd.index.toHuman())) { + newPlots.push(plotToAdd); + plotIndexSet.add(plotToAdd.index.toHuman()); + } + }); + + if (newPlots.length > plot.length) { + handlePlotSelection(newPlots); } } }} diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index 539e2e295..d06c197c9 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -458,20 +458,28 @@ export default function FillOrder() { {/* Pod Line Graph - Shows order markers (orange thin lines at maxPlaceInLine) */} item.order.id)} + selectedPlotIndices={selectedOrderIds} label="Open Orders" onPlotGroupSelect={(plotIndices) => { - // Multi-select toggle: add or remove clicked order - if (plotIndices.length > 0) { - const clickedOrderId = plotIndices[0]; + // Multi-select toggle: add or remove clicked order group + if (plotIndices.length === 0) return; + // Check if all orders in the group are already selected + const allSelected = plotIndices.every((orderId) => selectedOrderIds.includes(orderId)); + + if (allSelected) { + // Deselect only this group - remove orders from this group + setSelectedOrderIds((prev) => prev.filter((id) => !plotIndices.includes(id))); + } else { + // Add this group to existing selection - merge with current selection (avoid duplicates) setSelectedOrderIds((prev) => { - // If already selected, remove it - if (prev.includes(clickedOrderId)) { - return prev.filter((id) => id !== clickedOrderId); - } - // Otherwise, add it to selection - return [...prev, clickedOrderId]; + const newOrderIds = [...prev]; + plotIndices.forEach((orderId) => { + if (!newOrderIds.includes(orderId)) { + newOrderIds.push(orderId); + } + }); + return newOrderIds; }); } }} From 1affa181f9ef62ac8b0774bcf4cb7e72bbaf9b94 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 05:57:58 +0300 Subject: [PATCH 26/54] Add advanced settings to create listing --- src/pages/market/actions/CreateListing.tsx | 89 ++++++++++++++++------ 1 file changed, 65 insertions(+), 24 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 73ef2d19c..366970644 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -1,3 +1,4 @@ +import settingsIcon from "@/assets/misc/Settings.svg"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import ComboPlotInputField from "@/components/ComboPlotInputField"; @@ -23,6 +24,7 @@ import { formatter } from "@/utils/format"; import { FarmToMode, Plot } from "@/utils/types"; import { cn } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; +import { motion } from "framer-motion"; import { useCallback, useMemo, useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; @@ -87,11 +89,21 @@ export default function CreateListing() { const [successPrice, setSuccessPrice] = useState(null); const podIndex = usePodIndex(); const maxExpiration = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; - const expiresIn = maxExpiration; // Auto-set to max expiration + const [expiresIn, setExpiresIn] = useState(maxExpiration); // Auto-set to max expiration const minFill = TokenValue.fromHuman(1, PODS.decimals); + const [showAdvancedSettings, setShowAdvancedSettings] = useState(false); const plotPosition = plot.length > 0 ? plot[0].index.sub(harvestableIndex) : TV.ZERO; + const maxExpirationValidation = useMemo( + () => ({ + minValue: 1, + maxValue: maxExpiration, + maxDecimals: 0, + }), + [maxExpiration], + ); + // Calculate max pods based on selected plots OR all farmer plots const maxPodAmount = useMemo(() => { const plotsToUse = plot.length > 0 ? plot : farmerField.plots; @@ -197,7 +209,7 @@ export default function CreateListing() { plot_count: plots.length, previous_count: plot.length, }); - + // Sort plots by index to ensure consistent ordering const sortedPlots = [...plots].sort((a, b) => a.index.sub(b.index).toNumber()); setPlot(sortedPlots); @@ -416,7 +428,7 @@ export default function CreateListing() { // Add this group to existing selection - merge with current selection (avoid duplicates) const plotIndexSet = new Set(plot.map((p) => p.index.toHuman())); const newPlots = [...plot]; - + plotsInGroup.forEach((plotToAdd) => { if (!plotIndexSet.has(plotToAdd.index.toHuman())) { newPlots.push(plotToAdd); @@ -515,28 +527,57 @@ export default function CreateListing() {
)}
- {/* Expires In - Auto-set to max expiration */} - {/*
-

Expires In

- - {!!expiresIn && ( -

- This listing will automatically expire after {formatter.noDec(expiresIn)} more Pods become Harvestable. -

- )} -
*/} -
-

Send balances to Farm Balance

- setBalanceTo(checked ? FarmToMode.INTERNAL : FarmToMode.EXTERNAL)} - /> + {/* Advanced Settings Toggle */} +
+

Settings

+
+ {/* Advanced Settings - Collapsible */} + +
+ {/* Expires In - Auto-set to max expiration */} +
+

Expires In

+ + {!!expiresIn && ( +

+ This listing will automatically expire after {formatter.noDec(expiresIn)} more Pods become + Harvestable. +

+ )} +
+
+

Send balances to Farm Balance

+ setBalanceTo(checked ? FarmToMode.INTERNAL : FarmToMode.EXTERNAL)} + /> +
+
+
)}
From 38174d682e2b4aad52121a24684c7c99577cacc4 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 06:19:40 +0300 Subject: [PATCH 27/54] Fix ComboInputFiels --- src/components/ComboInputField.tsx | 47 ++++++++++++++++-------- src/pages/market/actions/FillListing.tsx | 16 ++++++++ src/pages/market/actions/FillOrder.tsx | 6 +++ 3 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/components/ComboInputField.tsx b/src/components/ComboInputField.tsx index 44dc1cb1e..8859d2df6 100644 --- a/src/components/ComboInputField.tsx +++ b/src/components/ComboInputField.tsx @@ -171,24 +171,30 @@ function ComboInputField({ return selectedPlots.reduce((total, plot) => total.add(plot.pods), TokenValue.ZERO); } - if (customMaxAmount) { - return customMaxAmount; - } - + // Get base balance first + let baseBalance = TokenValue.ZERO; if (tokenAndBalanceMap && selectedToken) { - return tokenAndBalanceMap.get(selectedToken) ?? TokenValue.ZERO; + baseBalance = tokenAndBalanceMap.get(selectedToken) ?? TokenValue.ZERO; + } else if (farmerTokenBalance) { + switch (balanceFrom) { + case FarmFromMode.EXTERNAL: + baseBalance = farmerTokenBalance.external || TokenValue.ZERO; + break; + case FarmFromMode.INTERNAL: + baseBalance = farmerTokenBalance.internal || TokenValue.ZERO; + break; + default: + baseBalance = farmerTokenBalance.total || TokenValue.ZERO; + } } - if (!farmerTokenBalance) return TokenValue.ZERO; - - switch (balanceFrom) { - case FarmFromMode.EXTERNAL: - return farmerTokenBalance.external || TokenValue.ZERO; - case FarmFromMode.INTERNAL: - return farmerTokenBalance.internal || TokenValue.ZERO; - default: - return farmerTokenBalance.total || TokenValue.ZERO; + // If customMaxAmount is provided and greater than 0, use the minimum of base balance and customMaxAmount + if (customMaxAmount?.gt(0)) { + return TokenValue.min(baseBalance, customMaxAmount); } + + // Otherwise use base balance + return baseBalance; }, [mode, selectedPlots, customMaxAmount, tokenAndBalanceMap, selectedToken, balanceFrom, farmerTokenBalance]); const balance = useMemo(() => { @@ -200,8 +206,17 @@ function ComboInputField({ return tokenAndBalanceMap.get(selectedToken) ?? TokenValue.ZERO; } } - return maxAmount; - }, [mode, selectedPlots, tokenAndBalanceMap, selectedToken, maxAmount]); + // Always use farmerTokenBalance for display, not maxAmount (which may be limited by customMaxAmount) + if (!farmerTokenBalance) return TokenValue.ZERO; + switch (balanceFrom) { + case FarmFromMode.EXTERNAL: + return farmerTokenBalance.external || TokenValue.ZERO; + case FarmFromMode.INTERNAL: + return farmerTokenBalance.internal || TokenValue.ZERO; + default: + return farmerTokenBalance.total || TokenValue.ZERO; + } + }, [mode, selectedPlots, tokenAndBalanceMap, selectedToken, farmerTokenBalance, balanceFrom]); /** * Clamp the input amount to the max amount ONLY IF clamping is enabled diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index 2fd87591a..cd444213d 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -405,6 +405,21 @@ export default function FillListing() { return null; } + // If only one listing, use its price directly (no need for average) + if (listingsToFill.length === 1) { + const { listing, beanAmount } = listingsToFill[0]; + const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals); + const podsFromListing = beanAmount.div(listingPrice); + const listingPlace = TokenValue.fromBlockchain(listing.index, PODS.decimals).sub(harvestableIndex); + + return { + avgPricePerPod: listingPrice, + avgPlaceInLine: listingPlace, + totalPods: podsFromListing.toNumber(), + }; + } + + // Multiple listings - calculate weighted average let totalValue = 0; let totalPods = 0; let totalPlaceInLine = 0; @@ -718,6 +733,7 @@ export default function FillListing() {
{ if (ordersToFill.length === 0 || amount === 0) return 0; + // If only one order, use its price directly (no need for average) + if (ordersToFill.length === 1) { + return TokenValue.fromBlockchain(ordersToFill[0].order.pricePerPod, mainToken.decimals).toNumber(); + } + + // Multiple orders - calculate weighted average let totalValue = 0; let totalPods = 0; From a2704a982cfdab5bea965935e2951d28406597fb Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 31 Oct 2025 06:23:21 +0300 Subject: [PATCH 28/54] Edit Market header --- src/pages/Market.tsx | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index b09e8167d..a579b4f54 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -1,6 +1,7 @@ import PodIcon from "@/assets/protocol/Pod.png"; import PintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; +import { Col } from "@/components/Container"; import FrameAnimator from "@/components/LoadingSpinner"; import ReadMoreAccordion from "@/components/ReadMoreAccordion"; import ScatterChart from "@/components/charts/ScatterChart"; @@ -305,23 +306,26 @@ export function Market() {
-
-
Market
-
- Buy and sell Pods on the open market. - - The Pod Market is a decentralized marketplace where users can trade Pods, which are protocol-native debt - instruments that represent future Pinto tokens. When you buy Pods, you're essentially purchasing the - right to redeem them for Pinto tokens at a fixed rate when they become harvestable. The market operates - on a first-in-first-out (FIFO) basis, meaning the oldest Pods become harvestable first. You can place - buy orders to acquire Pods at a specific price, or create listings to sell your existing Pods to other - users. The scatter chart above visualizes all active orders and listings, showing their place in line - and price per Pod. This allows you to see market depth and make informed trading decisions based on - current market conditions and your investment strategy. - + +
+
Market
+
+ Buy and sell Pods on the open market. +
-
-
+ + The Pod Market is a decentralized marketplace where users can trade Pods, which are protocol-native debt + instruments that represent future Pinto tokens. When you buy Pods, you're essentially purchasing the right + to redeem them for Pinto tokens at a fixed rate when they become harvestable. The market operates on a + first-in-first-out (FIFO) basis, meaning the oldest Pods become harvestable first. You can place buy + orders to acquire Pods at a specific price, or create listings to sell your existing Pods to other users. + The scatter chart above visualizes all active orders and listings, showing their place in line and price + per Pod. This allows you to see market depth and make informed trading decisions based on current market + conditions and your investment strategy. + + + +
{!isLoaded && ( From 37071c848922dd25e7d43e1bf3144e1340d2609d Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 15:53:42 +0300 Subject: [PATCH 29/54] Clean up code by removing unnecessary comment lines --- src/pages/market/actions/CreateListing.tsx | 26 ---------------------- 1 file changed, 26 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 366970644..0ab71ac64 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -314,21 +314,10 @@ export default function CreateListing() { setSubmitting(true); toast.loading(`Creating ${listingData.length} Listing${listingData.length > 1 ? "s" : ""}...`); - // Log listing data for debugging - // console.log("=== CREATE LISTING DATA ==="); - // console.log(`Total listings to create: ${listingData.length}`); - // console.log(`Price per pod: ${pricePerPod} ${mainToken.symbol}`); - const farmData: `0x${string}`[] = []; // Create a listing call for each plot for (const data of listingData) { - // console.log(`\n--- Listing ${index + 1} ---`); - // console.log(`Plot Index: ${data.index.toHuman()}`); - // console.log(`Start (relative): ${data.start.toHuman()}`); - // console.log(`End (relative): ${data.end.toHuman()}`); - // console.log(`Amount: ${data.amount.toHuman()} pods`); - // console.log(`Place in line: ${data.index.sub(harvestableIndex).toHuman()}`); const listingArgs = { lister: account, @@ -342,18 +331,6 @@ export default function CreateListing() { mode: Number(balanceTo), }; - // console.log("Encoded args:", { - // lister: listingArgs.lister, - // fieldId: listingArgs.fieldId.toString(), - // index: listingArgs.index.toString(), - // start: listingArgs.start.toString(), - // podAmount: listingArgs.podAmount.toString(), - // pricePerPod: listingArgs.pricePerPod, - // maxHarvestableIndex: listingArgs.maxHarvestableIndex.toString(), - // minFillAmount: listingArgs.minFillAmount.toString(), - // mode: listingArgs.mode, - // }); - const listingCall = encodeFunctionData({ abi: beanstalkAbi, functionName: "createPodListing", @@ -362,9 +339,6 @@ export default function CreateListing() { farmData.push(listingCall); } - // console.log(`\nTotal farm calls: ${farmData.length}`); - // console.log("=========================\n"); - // Use farm to batch all listings in one transaction writeWithEstimateGas({ address: diamondAddress, From ff7bfba4e49114e8578236e70a5dec67d62b3dad Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 16:03:27 +0300 Subject: [PATCH 30/54] Replace duplicated Buy/Sell buttons with Tabs and preserve scroll within /market/pods --- src/components/ScrollToTop.tsx | 17 ++++++++++-- src/pages/market/MarketModeSelect.tsx | 30 +++++----------------- src/pages/market/actions/CreateListing.tsx | 1 - 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/components/ScrollToTop.tsx b/src/components/ScrollToTop.tsx index b35dadaf6..2f54728d2 100644 --- a/src/components/ScrollToTop.tsx +++ b/src/components/ScrollToTop.tsx @@ -1,17 +1,30 @@ // components/ScrollToTop.tsx -import { useEffect } from "react"; +import { useEffect, useRef } from "react"; import { useLocation } from "react-router-dom"; export default function ScrollToTop() { const { pathname } = useLocation(); + const prevPathnameRef = useRef(null); useEffect(() => { + const prev = prevPathnameRef.current; + const isMarketPodsPrev = prev?.startsWith("/market/pods"); + const isMarketPodsCurrent = pathname.startsWith("/market/pods"); + + // Preserve scroll position when navigating within the Pod Market + if (isMarketPodsPrev && isMarketPodsCurrent) { + prevPathnameRef.current = pathname; + return; + } + document.body.scrollTo({ top: 0, left: 0, behavior: "instant", }); - }, [pathname]); // Trigger on pathname or search param changes + + prevPathnameRef.current = pathname; + }, [pathname]); return null; } diff --git a/src/pages/market/MarketModeSelect.tsx b/src/pages/market/MarketModeSelect.tsx index 2e5c5e118..130865a87 100644 --- a/src/pages/market/MarketModeSelect.tsx +++ b/src/pages/market/MarketModeSelect.tsx @@ -57,30 +57,12 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel return (
-
- - -
+ + + Buy Pods + Sell Pods + + {mainTab ? ( <> {mainTab === "sell" && hasNoPods ? ( diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 0ab71ac64..8034ed58a 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -318,7 +318,6 @@ export default function CreateListing() { // Create a listing call for each plot for (const data of listingData) { - const listingArgs = { lister: account, fieldId: 0n, From d0b553f706ace59fdba266b39bf5285b2bbc74cc Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 16:12:32 +0300 Subject: [PATCH 31/54] Make nextPlot access bounds-aware for readability --- src/components/PodLineGraph.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 8b49634f4..779292dc4 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -57,7 +57,7 @@ function combinePlots(plots: Plot[], harvestableIndex: TokenValue, selectedIndic for (let i = 0; i < sortedPlots.length; i++) { const plot = sortedPlots[i]; - const nextPlot = sortedPlots[i + 1]; + const nextPlot = i + 1 < sortedPlots.length ? sortedPlots[i + 1] : undefined; currentGroup.push(plot); From dc9716cd878ce7b78a08edede609d9cd44fdbe8c Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 16:37:02 +0300 Subject: [PATCH 32/54] Extract PlotGroup/Overlay and fix context-aware coloring --- src/components/PodLineGraph.tsx | 172 +++++++----------- .../PodLineGraph/PartialSelectionOverlay.tsx | 30 +++ src/components/PodLineGraph/PlotGroup.tsx | 52 ++++++ src/components/PodLineGraph/geometry.ts | 50 +++++ src/components/PodLineGraph/selection.ts | 13 ++ 5 files changed, 207 insertions(+), 110 deletions(-) create mode 100644 src/components/PodLineGraph/PartialSelectionOverlay.tsx create mode 100644 src/components/PodLineGraph/PlotGroup.tsx create mode 100644 src/components/PodLineGraph/geometry.ts create mode 100644 src/components/PodLineGraph/selection.ts diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 779292dc4..31e572e14 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -6,6 +6,10 @@ import { formatter } from "@/utils/format"; import { Plot } from "@/utils/types"; import { cn } from "@/utils/utils"; import { useMemo, useState } from "react"; +import { PlotGroup } from "./PodLineGraph/PlotGroup"; +import { PartialSelectionOverlay } from "./PodLineGraph/PartialSelectionOverlay"; +import { computeGroupLayout, computePartialSelectionPercent } from "./PodLineGraph/geometry"; +import { deriveGroupState } from "./PodLineGraph/selection"; // Layout constants const HARVESTED_WIDTH_PERCENT = 20; @@ -281,7 +285,6 @@ export default function PodLineGraph({ {/* Plot rectangles */}
{harvestedPlots.map((plot, idx) => { - // Exponential scale: small values compressed to the left, large values spread to the right const minValue = maxHarvestedIndex / 10; const plotStart = Math.max(plot.startIndex.toNumber(), minValue); const plotEnd = Math.max(plot.endIndex.toNumber(), minValue); @@ -289,29 +292,24 @@ export default function PodLineGraph({ const normalizedStart = (plotStart - minValue) / (maxHarvestedIndex - minValue); const normalizedEnd = (plotEnd - minValue) / (maxHarvestedIndex - minValue); - // Apply exponential transformation const k = 1; const leftPercent = ((Math.exp(k * normalizedStart) - 1) / (Math.exp(k) - 1)) * 100; const rightPercent = ((Math.exp(k * normalizedEnd) - 1) / (Math.exp(k) - 1)) * 100; const widthPercent = rightPercent - leftPercent; const displayWidth = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); - // Check if this is the leftmost plot const isLeftmost = idx === 0 && leftPercent < 1; + const borderRadius = isLeftmost ? "2px 0 0 2px" : "2px"; return ( -
); })} @@ -371,122 +369,76 @@ export default function PodLineGraph({ {/* Plot rectangles - grouped visually but individually interactive */}
{unharvestedPlots.map((group, groupIdx) => { - const groupPlaceInLine = group.startIndex.sub(harvestableIndex); - const groupEnd = group.endIndex.sub(harvestableIndex); - - const groupLeftPercent = podLine.gt(0) ? (groupPlaceInLine.toNumber() / podLine.toNumber()) * 100 : 0; - const groupWidthPercent = podLine.gt(0) - ? ((groupEnd.toNumber() - groupPlaceInLine.toNumber()) / podLine.toNumber()) * 100 - : 0; - const groupDisplayWidth = Math.max(groupWidthPercent, MIN_PLOT_WIDTH_PERCENT); - - // Check if this is the rightmost group - const isRightmost = - groupIdx === unharvestedPlots.length - 1 && groupLeftPercent + groupDisplayWidth > 99; + const groupStartMinusHarvestable = group.startIndex.sub(harvestableIndex); + const groupEndMinusHarvestable = group.endIndex.sub(harvestableIndex); + + const isLastGroup = groupIdx === unharvestedPlots.length - 1; + const { leftPercent, displayWidthPercent, borderRadius } = computeGroupLayout( + groupStartMinusHarvestable, + groupEndMinusHarvestable, + podLine, + isLastGroup, + ); - // Check if group is hovered or selected (based on first plot in group) - // Use id (for order markers) or index (for regular plots) const groupFirstPlotIndex = group.plots[0].id || group.plots[0].index.toHuman(); const hasHoveredPlot = group.plots.some((p) => (p.id || p.index.toHuman()) === hoveredPlotIndex); const hasSelectedPlot = group.plots.some((p) => selectedSet.has(p.id || p.index.toHuman())); const hasHarvestablePlot = group.plots.some((p) => p.harvestablePods?.gt(0)); - // Calculate partial selection if selectedPodRange is provided - let partialSelectionPercent: { start: number; end: number } | null = null; - if (selectedPodRange && hasSelectedPlot) { - // Calculate intersection of group and selected range - const groupStart = group.startIndex; - const groupEnd = group.endIndex; - const rangeStart = selectedPodRange.start; - const rangeEnd = selectedPodRange.end; - - // Check if there's an overlap - if (rangeStart.lt(groupEnd) && rangeEnd.gt(groupStart)) { - // Calculate the overlapping range within the group - const overlapStart = rangeStart.gt(groupStart) ? rangeStart : groupStart; - const overlapEnd = rangeEnd.lt(groupEnd) ? rangeEnd : groupEnd; - - // Convert to percentages within the group - const groupTotal = groupEnd.sub(groupStart).toNumber(); - const overlapStartOffset = overlapStart.sub(groupStart).toNumber(); - const overlapEndOffset = overlapEnd.sub(groupStart).toNumber(); - - partialSelectionPercent = { - start: (overlapStartOffset / groupTotal) * 100, - end: (overlapEndOffset / groupTotal) * 100, - }; - } - } - - // Determine group color - const groupIsGreen = - hasHarvestablePlot || (hasSelectedPlot && !partialSelectionPercent) || hasHoveredPlot; - const groupIsActive = hasHoveredPlot || hasSelectedPlot; - - // Border radius for the group - let groupBorderRadius = "2px"; - if (isRightmost) { - groupBorderRadius = "0 2px 2px 0"; - } + // Determine if the current range overlaps this group (used for coloring when range is present) + const overlapsSelection = selectedPodRange + ? selectedPodRange.start.lt(group.endIndex) && selectedPodRange.end.gt(group.startIndex) + : false; + + // Compute partial selection overlay only when selection overlaps + const partialSelectionPercent = selectedPodRange && overlapsSelection + ? computePartialSelectionPercent( + group.startIndex, + group.endIndex, + selectedPodRange.start, + selectedPodRange.end, + ) + : null; + + // In Create (range present), green follows overlap; in Fill (no range), green follows selection + const selectionGreen = selectedPodRange ? overlapsSelection : hasSelectedPlot; + + const { isGreen: groupIsGreen, isActive: groupIsActive } = deriveGroupState( + hasHarvestablePlot, + hasSelectedPlot, + hasHoveredPlot, + selectionGreen, + ); - // Handle group click - select all plots in the group const handleGroupClick = () => { if (disableInteractions) return; if (onPlotGroupSelect) { - // Send all plot IDs or indices in the group - // Prefer 'id' if available (for order markers), otherwise use index const plotIndices = group.plots.map((p) => p.id || p.index.toHuman()); onPlotGroupSelect(plotIndices); } }; - // Render group with partial selection if applicable return ( -
setHoveredPlotIndex(groupFirstPlotIndex)} + onMouseLeave={() => setHoveredPlotIndex(null)} > - {/* Base rectangle (background color) */} -
setHoveredPlotIndex(groupFirstPlotIndex)} - onMouseLeave={disableInteractions ? undefined : () => setHoveredPlotIndex(null)} - /> - - {/* Partial selection overlay (green) */} - {partialSelectionPercent && ( -
= 99.9 ? groupBorderRadius : "0", - borderBottomRightRadius: partialSelectionPercent.end >= 99.9 ? groupBorderRadius : "0", - }} + {partialSelectionPercent && hasSelectedPlot && ( + )} -
+ ); })}
diff --git a/src/components/PodLineGraph/PartialSelectionOverlay.tsx b/src/components/PodLineGraph/PartialSelectionOverlay.tsx new file mode 100644 index 000000000..64aa13c11 --- /dev/null +++ b/src/components/PodLineGraph/PartialSelectionOverlay.tsx @@ -0,0 +1,30 @@ +import React from "react"; + +interface PartialSelectionOverlayProps { + startPercent: number; + endPercent: number; + borderRadius: string; +} + +function PartialSelectionOverlayComponent({ startPercent, endPercent, borderRadius }: PartialSelectionOverlayProps) { + const width = Math.max(endPercent - startPercent, 0); + return ( +
= 99.9 ? borderRadius : "0", + borderBottomRightRadius: endPercent >= 99.9 ? borderRadius : "0", + }} + /> + ); +} + +export const PartialSelectionOverlay = React.memo(PartialSelectionOverlayComponent); + + diff --git a/src/components/PodLineGraph/PlotGroup.tsx b/src/components/PodLineGraph/PlotGroup.tsx new file mode 100644 index 000000000..d3f4d87ec --- /dev/null +++ b/src/components/PodLineGraph/PlotGroup.tsx @@ -0,0 +1,52 @@ +import { cn } from "@/utils/utils"; +import React from "react"; + +interface PlotGroupProps { + leftPercent: number; + widthPercent: number; + borderRadius: string; + isGreen: boolean; + isActive: boolean; + disableInteractions?: boolean; + onClick?: () => void; + onMouseEnter?: () => void; + onMouseLeave?: () => void; + children?: React.ReactNode; +} + +function PlotGroupComponent({ + leftPercent, + widthPercent, + borderRadius, + isGreen, + isActive, + disableInteractions, + onClick, + onMouseEnter, + onMouseLeave, + children, +}: PlotGroupProps) { + return ( +
+
+ {children} +
+ ); +} + +export const PlotGroup = React.memo(PlotGroupComponent); + + diff --git a/src/components/PodLineGraph/geometry.ts b/src/components/PodLineGraph/geometry.ts new file mode 100644 index 000000000..36ccfe90e --- /dev/null +++ b/src/components/PodLineGraph/geometry.ts @@ -0,0 +1,50 @@ +import { TokenValue } from "@/classes/TokenValue"; + +export const MIN_PLOT_WIDTH_PERCENT = 0.3; + +export function computeGroupLayout( + groupStartMinusHarvestable: TokenValue, + groupEndMinusHarvestable: TokenValue, + podLine: TokenValue, + isLastGroup: boolean, +): { leftPercent: number; displayWidthPercent: number; borderRadius: string } { + const leftPercent = podLine.gt(0) + ? (groupStartMinusHarvestable.toNumber() / podLine.toNumber()) * 100 + : 0; + const widthPercent = podLine.gt(0) + ? ((groupEndMinusHarvestable.toNumber() - groupStartMinusHarvestable.toNumber()) / podLine.toNumber()) * 100 + : 0; + const displayWidthPercent = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); + + let borderRadius = "2px"; + if (isLastGroup && leftPercent + displayWidthPercent > 99) { + borderRadius = "0 2px 2px 0"; + } + + return { leftPercent, displayWidthPercent, borderRadius }; +} + +export function computePartialSelectionPercent( + groupStart: TokenValue, + groupEnd: TokenValue, + rangeStart: TokenValue, + rangeEnd: TokenValue, +): { start: number; end: number } | null { + if (!(rangeStart.lt(groupEnd) && rangeEnd.gt(groupStart))) return null; + + const overlapStart = rangeStart.gt(groupStart) ? rangeStart : groupStart; + const overlapEnd = rangeEnd.lt(groupEnd) ? rangeEnd : groupEnd; + + const groupTotal = groupEnd.sub(groupStart).toNumber(); + if (groupTotal <= 0) return null; + + const overlapStartOffset = overlapStart.sub(groupStart).toNumber(); + const overlapEndOffset = overlapEnd.sub(groupStart).toNumber(); + + return { + start: (overlapStartOffset / groupTotal) * 100, + end: (overlapEndOffset / groupTotal) * 100, + }; +} + + diff --git a/src/components/PodLineGraph/selection.ts b/src/components/PodLineGraph/selection.ts new file mode 100644 index 000000000..6cf7db2f2 --- /dev/null +++ b/src/components/PodLineGraph/selection.ts @@ -0,0 +1,13 @@ +export function deriveGroupState( + hasHarvestablePlot: boolean, + hasSelectedPlot: boolean, + hasHoveredPlot: boolean, + selectionGreen: boolean, +): { isGreen: boolean; isActive: boolean } { + // Green if harvestable, hovered, or selection indicates green for this context + const isGreen = hasHarvestablePlot || hasHoveredPlot || selectionGreen; + const isActive = hasHoveredPlot || hasSelectedPlot; + return { isGreen, isActive }; +} + + From 7710006eaf254cf06a8922d100f0f6c29df2e819 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 16:44:04 +0300 Subject: [PATCH 33/54] Replace inline width styles with Tailwind --- src/components/PodLineGraph.tsx | 23 ++++++++++--------- .../PodLineGraph/PartialSelectionOverlay.tsx | 2 -- src/components/PodLineGraph/PlotGroup.tsx | 11 ++++++--- src/components/PodLineGraph/geometry.ts | 6 +---- src/components/PodLineGraph/selection.ts | 2 -- 5 files changed, 21 insertions(+), 23 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 31e572e14..7f053dc0a 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -6,8 +6,8 @@ import { formatter } from "@/utils/format"; import { Plot } from "@/utils/types"; import { cn } from "@/utils/utils"; import { useMemo, useState } from "react"; -import { PlotGroup } from "./PodLineGraph/PlotGroup"; import { PartialSelectionOverlay } from "./PodLineGraph/PartialSelectionOverlay"; +import { PlotGroup } from "./PodLineGraph/PlotGroup"; import { computeGroupLayout, computePartialSelectionPercent } from "./PodLineGraph/geometry"; import { deriveGroupState } from "./PodLineGraph/selection"; @@ -257,7 +257,7 @@ export default function PodLineGraph({
{/* Harvested Section (Log Scale) - Left 20% (only shown if there are harvested plots) */} {hasHarvestedPlots && ( -
+
{/* Grid lines (exponential scale) */}
{generateLogGridPoints(maxHarvestedIndex).map((value) => { @@ -318,7 +318,7 @@ export default function PodLineGraph({ )} {/* Podline Section (Linear Scale) - Right 80% or 100% if no harvested plots */} -
+
{/* Grid lines at 10M intervals */}
{generateAxisLabels(0, podLine.toNumber()).map((value) => { @@ -391,14 +391,15 @@ export default function PodLineGraph({ : false; // Compute partial selection overlay only when selection overlaps - const partialSelectionPercent = selectedPodRange && overlapsSelection - ? computePartialSelectionPercent( - group.startIndex, - group.endIndex, - selectedPodRange.start, - selectedPodRange.end, - ) - : null; + const partialSelectionPercent = + selectedPodRange && overlapsSelection + ? computePartialSelectionPercent( + group.startIndex, + group.endIndex, + selectedPodRange.start, + selectedPodRange.end, + ) + : null; // In Create (range present), green follows overlap; in Fill (no range), green follows selection const selectionGreen = selectedPodRange ? overlapsSelection : hasSelectedPlot; diff --git a/src/components/PodLineGraph/PartialSelectionOverlay.tsx b/src/components/PodLineGraph/PartialSelectionOverlay.tsx index 64aa13c11..10d5aa27c 100644 --- a/src/components/PodLineGraph/PartialSelectionOverlay.tsx +++ b/src/components/PodLineGraph/PartialSelectionOverlay.tsx @@ -26,5 +26,3 @@ function PartialSelectionOverlayComponent({ startPercent, endPercent, borderRadi } export const PartialSelectionOverlay = React.memo(PartialSelectionOverlayComponent); - - diff --git a/src/components/PodLineGraph/PlotGroup.tsx b/src/components/PodLineGraph/PlotGroup.tsx index d3f4d87ec..4da88fec3 100644 --- a/src/components/PodLineGraph/PlotGroup.tsx +++ b/src/components/PodLineGraph/PlotGroup.tsx @@ -29,7 +29,14 @@ function PlotGroupComponent({ return (
Date: Mon, 3 Nov 2025 16:47:51 +0300 Subject: [PATCH 34/54] Memoize grid points and axis labels to avoid redundant recalculations --- src/components/PodLineGraph.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 7f053dc0a..10133d4c2 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -245,6 +245,11 @@ export default function PodLineGraph({ const harvestedWidthPercent = hasHarvestedPlots ? HARVESTED_WIDTH_PERCENT : 0; const podlineWidthPercent = hasHarvestedPlots ? PODLINE_WIDTH_PERCENT : 100; + // Memoized grid points and axis labels + const logGridPoints = useMemo(() => generateLogGridPoints(maxHarvestedIndex), [maxHarvestedIndex]); + const topAxisLabels = useMemo(() => generateAxisLabels(0, podLine.toNumber()), [podLine]); + const bottomAxisLabels = topAxisLabels; + return (
{/* Label */} @@ -260,7 +265,7 @@ export default function PodLineGraph({
{/* Grid lines (exponential scale) */}
- {generateLogGridPoints(maxHarvestedIndex).map((value) => { + {logGridPoints.map((value) => { // Exponential scale: small values compressed to the left, large values spread to the right const minValue = maxHarvestedIndex / 10; const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); @@ -321,7 +326,7 @@ export default function PodLineGraph({
{/* Grid lines at 10M intervals */}
- {generateAxisLabels(0, podLine.toNumber()).map((value) => { + {bottomAxisLabels.map((value) => { if (value === 0) return null; // Skip 0, it's the marker const position = podLine.gt(0) ? (value / podLine.toNumber()) * 100 : 0; if (position > 100) return null; From d95b2a2215860449aed48de2354667dfe5b499e5 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 16:52:22 +0300 Subject: [PATCH 35/54] Extract onPlotGroupSelect into memoized handler for readability --- src/pages/market/actions/CreateListing.tsx | 59 +++++++++++----------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 8034ed58a..ea9258f87 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -266,6 +266,34 @@ export default function CreateListing() { } }, [pricePerPodInput]); + const handlePlotGroupSelect = useCallback( + (plotIndices: string[]) => { + const plotsInGroup = farmerField.plots.filter((p) => plotIndices.includes(p.index.toHuman())); + if (plotsInGroup.length === 0) return; + + const allSelected = plotIndices.every((index) => plot.some((p) => p.index.toHuman() === index)); + if (allSelected) { + const updatedPlots = plot.filter((p) => !plotIndices.includes(p.index.toHuman())); + handlePlotSelection(updatedPlots); + return; + } + + const plotIndexSet = new Set(plot.map((p) => p.index.toHuman())); + const newPlots = [...plot]; + plotsInGroup.forEach((plotToAdd) => { + const key = plotToAdd.index.toHuman(); + if (!plotIndexSet.has(key)) { + newPlots.push(plotToAdd); + plotIndexSet.add(key); + } + }); + if (newPlots.length > plot.length) { + handlePlotSelection(newPlots); + } + }, + [farmerField.plots, plot, handlePlotSelection], + ); + // reset form and invalidate pod listing query const onSuccess = useCallback(() => { setSuccessAmount(amount); @@ -384,36 +412,7 @@ export default function CreateListing() { selectedPlotIndices={plot.map((p) => p.index.toHuman())} selectedPodRange={selectedPodRange} label="My Pods In Line" - onPlotGroupSelect={(plotIndices) => { - // Find all plots in the clicked group from farmer plots - const plotsInGroup = farmerField.plots.filter((p) => plotIndices.includes(p.index.toHuman())); - - if (plotsInGroup.length === 0) return; - - // Check if all plots in the group are already selected - const allSelected = plotIndices.every((index) => plot.some((p) => p.index.toHuman() === index)); - - if (allSelected) { - // Deselect only this group - remove plots from this group - const updatedPlots = plot.filter((p) => !plotIndices.includes(p.index.toHuman())); - handlePlotSelection(updatedPlots); - } else { - // Add this group to existing selection - merge with current selection (avoid duplicates) - const plotIndexSet = new Set(plot.map((p) => p.index.toHuman())); - const newPlots = [...plot]; - - plotsInGroup.forEach((plotToAdd) => { - if (!plotIndexSet.has(plotToAdd.index.toHuman())) { - newPlots.push(plotToAdd); - plotIndexSet.add(plotToAdd.index.toHuman()); - } - }); - - if (newPlots.length > plot.length) { - handlePlotSelection(newPlots); - } - } - }} + onPlotGroupSelect={handlePlotGroupSelect} /> {/* Position in Line Display (below graph) */} From 33dc443115a2c122e34a224e8a5f9a74c23825db Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 17:25:07 +0300 Subject: [PATCH 36/54] Extract duplicate balance mode switch-case into reusable helper function --- src/components/ComboInputField.tsx | 50 +++++++++++++++++------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/src/components/ComboInputField.tsx b/src/components/ComboInputField.tsx index 8859d2df6..075c55d88 100644 --- a/src/components/ComboInputField.tsx +++ b/src/components/ComboInputField.tsx @@ -166,6 +166,22 @@ function ComboInputField({ : selectedTokenPrice.mul(disableInput ? amountAsTokenValue : internalAmount) : undefined; + // Helper to get balance from farmerTokenBalance based on balanceFrom mode + const getFarmerBalanceByMode = useCallback( + (farmerBalance: typeof farmerTokenBalance, mode: FarmFromMode | undefined): TokenValue => { + if (!farmerBalance) return TokenValue.ZERO; + switch (mode) { + case FarmFromMode.EXTERNAL: + return farmerBalance.external || TokenValue.ZERO; + case FarmFromMode.INTERNAL: + return farmerBalance.internal || TokenValue.ZERO; + default: + return farmerBalance.total || TokenValue.ZERO; + } + }, + [], + ); + const maxAmount = useMemo(() => { if (mode === "plots" && selectedPlots) { return selectedPlots.reduce((total, plot) => total.add(plot.pods), TokenValue.ZERO); @@ -176,16 +192,7 @@ function ComboInputField({ if (tokenAndBalanceMap && selectedToken) { baseBalance = tokenAndBalanceMap.get(selectedToken) ?? TokenValue.ZERO; } else if (farmerTokenBalance) { - switch (balanceFrom) { - case FarmFromMode.EXTERNAL: - baseBalance = farmerTokenBalance.external || TokenValue.ZERO; - break; - case FarmFromMode.INTERNAL: - baseBalance = farmerTokenBalance.internal || TokenValue.ZERO; - break; - default: - baseBalance = farmerTokenBalance.total || TokenValue.ZERO; - } + baseBalance = getFarmerBalanceByMode(farmerTokenBalance, balanceFrom); } // If customMaxAmount is provided and greater than 0, use the minimum of base balance and customMaxAmount @@ -195,7 +202,16 @@ function ComboInputField({ // Otherwise use base balance return baseBalance; - }, [mode, selectedPlots, customMaxAmount, tokenAndBalanceMap, selectedToken, balanceFrom, farmerTokenBalance]); + }, [ + mode, + selectedPlots, + customMaxAmount, + tokenAndBalanceMap, + selectedToken, + balanceFrom, + farmerTokenBalance, + getFarmerBalanceByMode, + ]); const balance = useMemo(() => { if (mode === "plots" && selectedPlots) { @@ -207,16 +223,8 @@ function ComboInputField({ } } // Always use farmerTokenBalance for display, not maxAmount (which may be limited by customMaxAmount) - if (!farmerTokenBalance) return TokenValue.ZERO; - switch (balanceFrom) { - case FarmFromMode.EXTERNAL: - return farmerTokenBalance.external || TokenValue.ZERO; - case FarmFromMode.INTERNAL: - return farmerTokenBalance.internal || TokenValue.ZERO; - default: - return farmerTokenBalance.total || TokenValue.ZERO; - } - }, [mode, selectedPlots, tokenAndBalanceMap, selectedToken, farmerTokenBalance, balanceFrom]); + return getFarmerBalanceByMode(farmerTokenBalance, balanceFrom); + }, [mode, selectedPlots, tokenAndBalanceMap, selectedToken, farmerTokenBalance, balanceFrom, getFarmerBalanceByMode]); /** * Clamp the input amount to the max amount ONLY IF clamping is enabled From 56e88eb2a1dccd11d5af04658bf2b37a7ef4226f Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 3 Nov 2025 23:04:52 +0300 Subject: [PATCH 37/54] Fix listing table redirect --- src/pages/market/PodListingsTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/market/PodListingsTable.tsx b/src/pages/market/PodListingsTable.tsx index f7e47d15f..d36fb1d22 100644 --- a/src/pages/market/PodListingsTable.tsx +++ b/src/pages/market/PodListingsTable.tsx @@ -97,7 +97,7 @@ export function PodListingsTable() { key={listing.id} className={`hover:cursor-pointer ${selectedListing === id ? "bg-pinto-green-1 hover:bg-pinto-green-1" : ""}`} noHoverMute - onClick={() => navigateTo(listing.index.valueOf())} + onClick={() => navigateTo(listing.id)} > {createdAt.toLocaleString(undefined, dateOptions)} From a9baa53bc733dde7877050735eaaf820a21e056e Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Sun, 9 Nov 2025 23:26:21 +0300 Subject: [PATCH 38/54] Refactor and resolve QA --- src/components/PodLineGraph.tsx | 195 ++++++++++---- src/components/PodLineGraph/HoverTooltip.tsx | 61 +++++ .../PodLineGraph/PartialSelectionOverlay.tsx | 22 +- src/components/PodLineGraph/PlotGroup.tsx | 67 +++-- src/components/PodLineGraph/geometry.ts | 56 ++-- src/components/PodLineGraph/selection.ts | 32 ++- src/components/ui/Tabs.tsx | 47 +++- src/pages/Market.tsx | 254 ++++++++++-------- src/pages/market/MarketModeSelect.tsx | 93 ++++--- src/pages/market/actions/CreateListing.tsx | 165 ++++++------ src/pages/market/actions/CreateOrder.tsx | 72 +++-- src/pages/market/actions/FillListing.tsx | 63 +++-- src/pages/market/actions/FillOrder.tsx | 35 +-- tailwind.config.js | 1 + 14 files changed, 742 insertions(+), 421 deletions(-) create mode 100644 src/components/PodLineGraph/HoverTooltip.tsx diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 10133d4c2..9acf17eb7 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -2,10 +2,10 @@ import { TokenValue } from "@/classes/TokenValue"; import { PODS } from "@/constants/internalTokens"; import { useFarmerField } from "@/state/useFarmerField"; import { useHarvestableIndex, usePodIndex } from "@/state/useFieldData"; -import { formatter } from "@/utils/format"; import { Plot } from "@/utils/types"; import { cn } from "@/utils/utils"; -import { useMemo, useState } from "react"; +import React, { useMemo, useState, useRef, useEffect } from "react"; +import { HoverTooltip } from "./PodLineGraph/HoverTooltip"; import { PartialSelectionOverlay } from "./PodLineGraph/PartialSelectionOverlay"; import { PlotGroup } from "./PodLineGraph/PlotGroup"; import { computeGroupLayout, computePartialSelectionPercent } from "./PodLineGraph/geometry"; @@ -17,6 +17,12 @@ const PODLINE_WIDTH_PERCENT = 80; const MIN_PLOT_WIDTH_PERCENT = 0.3; // Minimum plot width for clickability const MAX_GAP_TO_COMBINE = TokenValue.fromHuman("1000000", PODS.decimals); // Combine plots within 1M gap for visual grouping +// Grid and scale constants +const AXIS_INTERVAL = 10_000_000; // 10M intervals for axis labels +const LOG_SCALE_K = 1; // Exponential transformation factor for log scale +const MILLION = 1_000_000; +const TOOLTIP_OFFSET = 12; // px offset for tooltip positioning + interface CombinedPlot { startIndex: TokenValue; endIndex: TokenValue; @@ -107,13 +113,10 @@ function combinePlots(plots: Plot[], harvestableIndex: TokenValue, selectedIndic * Generates nice axis labels at 10M intervals */ function generateAxisLabels(min: number, max: number): number[] { - const INTERVAL = 10_000_000; // 10M const labels: number[] = []; + const start = Math.floor(min / AXIS_INTERVAL) * AXIS_INTERVAL; - // Start from 0 or the first 10M multiple - const start = Math.floor(min / INTERVAL) * INTERVAL; - - for (let value = start; value <= max; value += INTERVAL) { + for (let value = start; value <= max; value += AXIS_INTERVAL) { if (value >= min) { labels.push(value); } @@ -130,19 +133,18 @@ function generateLogGridPoints(maxValue: number): number[] { if (maxValue <= 0) return []; const gridPoints: number[] = []; - const million = 1_000_000; const minValue = maxValue / 10; // For values less than 10M, use simple 1M, 2M, 5M pattern - if (maxValue <= 10 * million) { - if (maxValue > 1 * million && 1 * million > minValue) gridPoints.push(1 * million); - if (maxValue > 2 * million && 2 * million > minValue) gridPoints.push(2 * million); - if (maxValue > 5 * million && 5 * million > minValue) gridPoints.push(5 * million); + if (maxValue <= 10 * MILLION) { + if (maxValue > MILLION && MILLION > minValue) gridPoints.push(MILLION); + if (maxValue > 2 * MILLION && 2 * MILLION > minValue) gridPoints.push(2 * MILLION); + if (maxValue > 5 * MILLION && 5 * MILLION > minValue) gridPoints.push(5 * MILLION); return gridPoints; } // For larger values, use powers of 10 - let power = million; + let power = MILLION; while (power < maxValue) { if (power > minValue) gridPoints.push(power); const next2 = power * 2; @@ -159,8 +161,8 @@ function generateLogGridPoints(maxValue: number): number[] { * Formats large numbers for axis labels (e.g., 1000000 -> "1M") */ function formatAxisLabel(value: number): string { - if (value >= 1_000_000) { - return `${(value / 1_000_000).toFixed(0)}M`; + if (value >= MILLION) { + return `${(value / MILLION).toFixed(0)}M`; } if (value >= 1_000) { return `${(value / 1_000).toFixed(0)}K`; @@ -168,6 +170,14 @@ function formatAxisLabel(value: number): string { return value.toFixed(0); } +/** + * Calculates exponential position for log scale visualization + */ +function calculateLogPosition(value: number, minValue: number, maxValue: number): number { + const normalizedValue = (value - minValue) / (maxValue - minValue); + return ((Math.exp(LOG_SCALE_K * normalizedValue) - 1) / (Math.exp(LOG_SCALE_K) - 1)) * 100; +} + export default function PodLineGraph({ plots: providedPlots, selectedPlotIndices = [], @@ -184,6 +194,24 @@ export default function PodLineGraph({ const podIndex = usePodIndex(); const [hoveredPlotIndex, setHoveredPlotIndex] = useState(null); + const [tooltipData, setTooltipData] = useState<{ + podAmount: TokenValue; + placeStart: TokenValue; + placeEnd: TokenValue; + mouseX: number; + mouseY: number; + } | null>(null); + const rafRef = useRef(); + const containerRef = useRef(null); + + // Cleanup RAF on unmount + useEffect(() => { + return () => { + if (rafRef.current) { + cancelAnimationFrame(rafRef.current); + } + }; + }, []); // Use provided plots or default to farmer's plots const plots = providedPlots ?? farmerField.plots; @@ -251,7 +279,7 @@ export default function PodLineGraph({ const bottomAxisLabels = topAxisLabels; return ( -
+
{/* Label */}

{label}

@@ -266,14 +294,8 @@ export default function PodLineGraph({ {/* Grid lines (exponential scale) */}
{logGridPoints.map((value) => { - // Exponential scale: small values compressed to the left, large values spread to the right const minValue = maxHarvestedIndex / 10; - const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); - - // Apply exponential transformation: position = (e^(k*x) - 1) / (e^k - 1) - // Using k=1 for very gentle exponential curve (almost linear) - const k = 1; - const position = ((Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1)) * 100; + const position = calculateLogPosition(value, minValue, maxHarvestedIndex); if (position > 100 || position < 0) return null; @@ -289,30 +311,22 @@ export default function PodLineGraph({ {/* Plot rectangles */}
- {harvestedPlots.map((plot, idx) => { + {harvestedPlots.map((plot) => { const minValue = maxHarvestedIndex / 10; const plotStart = Math.max(plot.startIndex.toNumber(), minValue); const plotEnd = Math.max(plot.endIndex.toNumber(), minValue); - const normalizedStart = (plotStart - minValue) / (maxHarvestedIndex - minValue); - const normalizedEnd = (plotEnd - minValue) / (maxHarvestedIndex - minValue); - - const k = 1; - const leftPercent = ((Math.exp(k * normalizedStart) - 1) / (Math.exp(k) - 1)) * 100; - const rightPercent = ((Math.exp(k * normalizedEnd) - 1) / (Math.exp(k) - 1)) * 100; + const leftPercent = calculateLogPosition(plotStart, minValue, maxHarvestedIndex); + const rightPercent = calculateLogPosition(plotEnd, minValue, maxHarvestedIndex); const widthPercent = rightPercent - leftPercent; const displayWidth = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); - const isLeftmost = idx === 0 && leftPercent < 1; - const borderRadius = isLeftmost ? "2px 0 0 2px" : "2px"; - return ( @@ -350,7 +364,6 @@ export default function PodLineGraph({ width: `${podLine.gt(0) ? (orderRangeEnd.sub(harvestableIndex).toNumber() / podLine.toNumber()) * 100 : 0}%`, height: "100%", top: "0%", - borderRadius: "2px", zIndex: 5, }} /> @@ -365,7 +378,6 @@ export default function PodLineGraph({ width: `${podLine.gt(0) ? (rangeOverlay.end.sub(rangeOverlay.start).toNumber() / podLine.toNumber()) * 100 : 0}%`, height: "100%", top: "0%", - borderRadius: "2px", zIndex: 5, }} /> @@ -377,12 +389,10 @@ export default function PodLineGraph({ const groupStartMinusHarvestable = group.startIndex.sub(harvestableIndex); const groupEndMinusHarvestable = group.endIndex.sub(harvestableIndex); - const isLastGroup = groupIdx === unharvestedPlots.length - 1; - const { leftPercent, displayWidthPercent, borderRadius } = computeGroupLayout( + const { leftPercent, displayWidthPercent } = computeGroupLayout( groupStartMinusHarvestable, groupEndMinusHarvestable, podLine, - isLastGroup, ); const groupFirstPlotIndex = group.plots[0].id || group.plots[0].index.toHuman(); @@ -406,16 +416,27 @@ export default function PodLineGraph({ ) : null; - // In Create (range present), green follows overlap; in Fill (no range), green follows selection - const selectionGreen = selectedPodRange ? overlapsSelection : hasSelectedPlot; + // In Create (range present), highlighted follows overlap; in Fill (no range), highlighted follows selection + // However, if there's a partial selection AND not hovered, don't highlight the whole group - let the overlay show the selection + const hasPartialSelection = Boolean(partialSelectionPercent) && !hasHoveredPlot; + const selectionHighlighted = hasPartialSelection + ? false + : selectedPodRange + ? overlapsSelection + : hasSelectedPlot; - const { isGreen: groupIsGreen, isActive: groupIsActive } = deriveGroupState( + const { isHighlighted: groupIsHighlighted, isActive: groupIsActive } = deriveGroupState( hasHarvestablePlot, hasSelectedPlot, hasHoveredPlot, - selectionGreen, + selectionHighlighted, ); + // If there's a partial selection AND not hovered, don't make the whole group active (yellow) + // The partial overlay will show the yellow color for the selected portion + // When hovered, the whole group should be yellow + const finalIsActive = hasPartialSelection ? false : groupIsActive; + const handleGroupClick = () => { if (disableInteractions) return; if (onPlotGroupSelect) { @@ -424,24 +445,60 @@ export default function PodLineGraph({ } }; + const handleMouseEnter = (e: React.MouseEvent) => { + setHoveredPlotIndex(groupFirstPlotIndex); + if (!disableInteractions) { + setTooltipData({ + podAmount: group.totalPods, + placeStart: groupStartMinusHarvestable, + placeEnd: groupEndMinusHarvestable, + mouseX: e.clientX, + mouseY: e.clientY, + }); + } + }; + + const handleMouseMove = (e: React.MouseEvent) => { + if (!disableInteractions && tooltipData) { + // Use RAF for smooth 60fps updates + if (rafRef.current) { + cancelAnimationFrame(rafRef.current); + } + rafRef.current = requestAnimationFrame(() => { + setTooltipData({ + ...tooltipData, + mouseX: e.clientX, + mouseY: e.clientY, + }); + }); + } + }; + + const handleMouseLeave = () => { + setHoveredPlotIndex(null); + setTooltipData(null); + if (rafRef.current) { + cancelAnimationFrame(rafRef.current); + } + }; + return ( setHoveredPlotIndex(groupFirstPlotIndex)} - onMouseLeave={() => setHoveredPlotIndex(null)} + onMouseEnter={handleMouseEnter} + onMouseMove={handleMouseMove} + onMouseLeave={handleMouseLeave} > {partialSelectionPercent && hasSelectedPlot && ( )} @@ -486,14 +543,9 @@ export default function PodLineGraph({ {/* Harvested section labels (only shown if there are harvested plots) */} {hasHarvestedPlots && (
- {generateLogGridPoints(maxHarvestedIndex).map((value) => { - // Exponential scale: small values compressed to the left, large values spread to the right + {logGridPoints.map((value) => { const minValue = maxHarvestedIndex / 10; - const normalizedValue = (value - minValue) / (maxHarvestedIndex - minValue); - - // Apply exponential transformation - const k = 1; - const position = ((Math.exp(k * normalizedValue) - 1) / (Math.exp(k) - 1)) * 100; + const position = calculateLogPosition(value, minValue, maxHarvestedIndex); return (
+ + {/* Tooltip - follows mouse cursor */} + {tooltipData && + containerRef.current && + (() => { + const containerRect = containerRef.current.getBoundingClientRect(); + const relativeX = tooltipData.mouseX - containerRect.left; + const alignRight = relativeX > containerRect.width / 2; + + return ( +
+ +
+ ); + })()}
); } diff --git a/src/components/PodLineGraph/HoverTooltip.tsx b/src/components/PodLineGraph/HoverTooltip.tsx new file mode 100644 index 000000000..7c83b23d6 --- /dev/null +++ b/src/components/PodLineGraph/HoverTooltip.tsx @@ -0,0 +1,61 @@ +import { TokenValue } from "@/classes/TokenValue"; +import { cn } from "@/utils/utils"; +import React from "react"; + +interface HoverTooltipProps { + podAmount: TokenValue; + placeInLineStart: TokenValue; + placeInLineEnd: TokenValue; + visible: boolean; + alignRight?: boolean; +} + +const MILLION = 1_000_000; +const THOUSAND = 1_000; + +/** + * Formats large numbers for display (e.g., 1000000 -> "1M") + */ +export function formatNumber(value: number): string { + if (value >= MILLION) { + return `${(value / MILLION).toFixed(1)}M`; + } + if (value >= THOUSAND) { + return `${(value / THOUSAND).toFixed(0)}K`; + } + return value.toFixed(0); +} + +function HoverTooltipComponent({ + podAmount, + placeInLineStart, + placeInLineEnd, + visible, + alignRight = false, +}: HoverTooltipProps) { + if (!visible) return null; + + const formattedPods = formatNumber(podAmount.toNumber()); + const formattedStart = formatNumber(placeInLineStart.toNumber()); + const formattedEnd = formatNumber(placeInLineEnd.toNumber()); + + const textClassName = cn("text-[0.875rem] font-[340] text-pinto-gray-4", alignRight ? "text-right" : "text-left"); + + const valueClassName = "text-pinto-gray-5 font-[400]"; + + return ( +
+
+ {formattedPods} Pods +
+
+ Place{" "} + + {formattedStart} - {formattedEnd} + +
+
+ ); +} + +export const HoverTooltip = React.memo(HoverTooltipComponent); diff --git a/src/components/PodLineGraph/PartialSelectionOverlay.tsx b/src/components/PodLineGraph/PartialSelectionOverlay.tsx index 10d5aa27c..c0e7f1877 100644 --- a/src/components/PodLineGraph/PartialSelectionOverlay.tsx +++ b/src/components/PodLineGraph/PartialSelectionOverlay.tsx @@ -3,26 +3,26 @@ import React from "react"; interface PartialSelectionOverlayProps { startPercent: number; endPercent: number; - borderRadius: string; } -function PartialSelectionOverlayComponent({ startPercent, endPercent, borderRadius }: PartialSelectionOverlayProps) { - const width = Math.max(endPercent - startPercent, 0); +const OVERLAY_Z_INDEX = 10; + +function PartialSelectionOverlayComponent({ startPercent, endPercent }: PartialSelectionOverlayProps) { + // Early return if invalid range + if (startPercent >= endPercent) return null; + + const width = endPercent - startPercent; + return (
= 99.9 ? borderRadius : "0", - borderBottomRightRadius: endPercent >= 99.9 ? borderRadius : "0", + zIndex: OVERLAY_Z_INDEX, }} /> ); } -export const PartialSelectionOverlay = React.memo(PartialSelectionOverlayComponent); +export const PartialSelectionOverlay = React.memo(PartialSelectionOverlayComponent); diff --git a/src/components/PodLineGraph/PlotGroup.tsx b/src/components/PodLineGraph/PlotGroup.tsx index 4da88fec3..652522411 100644 --- a/src/components/PodLineGraph/PlotGroup.tsx +++ b/src/components/PodLineGraph/PlotGroup.tsx @@ -1,57 +1,80 @@ import { cn } from "@/utils/utils"; -import React from "react"; +import React, { useMemo } from "react"; interface PlotGroupProps { leftPercent: number; widthPercent: number; - borderRadius: string; - isGreen: boolean; + isHighlighted: boolean; isActive: boolean; disableInteractions?: boolean; onClick?: () => void; - onMouseEnter?: () => void; + onMouseEnter?: (e: React.MouseEvent) => void; + onMouseMove?: (e: React.MouseEvent) => void; onMouseLeave?: () => void; children?: React.ReactNode; } +const Z_INDEX_ACTIVE = 20; +const Z_INDEX_DEFAULT = 1; +const MIN_PLOT_WIDTH = "4px"; + +/** + * Determines background color based on plot state + */ +function getBackgroundColor(isHighlighted: boolean, isActive: boolean): string { + if (isHighlighted && isActive) { + return "bg-pinto-yellow-active"; // Yellow for hover/selected + } + if (isHighlighted && !isActive) { + return "bg-pinto-green-1"; // Green for harvestable plots + } + return "bg-pinto-morning-orange"; // Default orange +} + function PlotGroupComponent({ leftPercent, widthPercent, - borderRadius, - isGreen, + isHighlighted, isActive, - disableInteractions, + disableInteractions = false, onClick, onMouseEnter, + onMouseMove, onMouseLeave, children, }: PlotGroupProps) { + const backgroundColor = useMemo(() => getBackgroundColor(isHighlighted, isActive), [isHighlighted, isActive]); + + const eventHandlers = useMemo( + () => + disableInteractions + ? {} + : { + onClick, + onMouseEnter, + onMouseMove, + onMouseLeave, + }, + [disableInteractions, onClick, onMouseEnter, onMouseMove, onMouseLeave], + ); + return (
{children}
); } -export const PlotGroup = React.memo(PlotGroupComponent); +export const PlotGroup = React.memo(PlotGroupComponent); diff --git a/src/components/PodLineGraph/geometry.ts b/src/components/PodLineGraph/geometry.ts index e4483623f..fa01f0b92 100644 --- a/src/components/PodLineGraph/geometry.ts +++ b/src/components/PodLineGraph/geometry.ts @@ -1,25 +1,39 @@ import { TokenValue } from "@/classes/TokenValue"; export const MIN_PLOT_WIDTH_PERCENT = 0.3; +const PERCENT_MULTIPLIER = 100; + +/** + * Converts a value to percentage of total + */ +function toPercent(value: number, total: number): number { + return total > 0 ? (value / total) * PERCENT_MULTIPLIER : 0; +} + +export interface GroupLayout { + leftPercent: number; + displayWidthPercent: number; +} + +export interface PartialSelection { + start: number; + end: number; +} export function computeGroupLayout( groupStartMinusHarvestable: TokenValue, groupEndMinusHarvestable: TokenValue, podLine: TokenValue, - isLastGroup: boolean, -): { leftPercent: number; displayWidthPercent: number; borderRadius: string } { - const leftPercent = podLine.gt(0) ? (groupStartMinusHarvestable.toNumber() / podLine.toNumber()) * 100 : 0; - const widthPercent = podLine.gt(0) - ? ((groupEndMinusHarvestable.toNumber() - groupStartMinusHarvestable.toNumber()) / podLine.toNumber()) * 100 - : 0; - const displayWidthPercent = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); +): GroupLayout { + const podLineNum = podLine.toNumber(); + const startNum = groupStartMinusHarvestable.toNumber(); + const endNum = groupEndMinusHarvestable.toNumber(); - let borderRadius = "2px"; - if (isLastGroup && leftPercent + displayWidthPercent > 99) { - borderRadius = "0 2px 2px 0"; - } + const leftPercent = toPercent(startNum, podLineNum); + const widthPercent = toPercent(endNum - startNum, podLineNum); + const displayWidthPercent = Math.max(widthPercent, MIN_PLOT_WIDTH_PERCENT); - return { leftPercent, displayWidthPercent, borderRadius }; + return { leftPercent, displayWidthPercent }; } export function computePartialSelectionPercent( @@ -27,20 +41,24 @@ export function computePartialSelectionPercent( groupEnd: TokenValue, rangeStart: TokenValue, rangeEnd: TokenValue, -): { start: number; end: number } | null { - if (!(rangeStart.lt(groupEnd) && rangeEnd.gt(groupStart))) return null; - - const overlapStart = rangeStart.gt(groupStart) ? rangeStart : groupStart; - const overlapEnd = rangeEnd.lt(groupEnd) ? rangeEnd : groupEnd; +): PartialSelection | null { + // Check if range overlaps with group + if (!rangeStart.lt(groupEnd) || !rangeEnd.gt(groupStart)) { + return null; + } const groupTotal = groupEnd.sub(groupStart).toNumber(); if (groupTotal <= 0) return null; + // Calculate overlap boundaries + const overlapStart = rangeStart.gt(groupStart) ? rangeStart : groupStart; + const overlapEnd = rangeEnd.lt(groupEnd) ? rangeEnd : groupEnd; + const overlapStartOffset = overlapStart.sub(groupStart).toNumber(); const overlapEndOffset = overlapEnd.sub(groupStart).toNumber(); return { - start: (overlapStartOffset / groupTotal) * 100, - end: (overlapEndOffset / groupTotal) * 100, + start: toPercent(overlapStartOffset, groupTotal), + end: toPercent(overlapEndOffset, groupTotal), }; } diff --git a/src/components/PodLineGraph/selection.ts b/src/components/PodLineGraph/selection.ts index cf9523730..24307e1d3 100644 --- a/src/components/PodLineGraph/selection.ts +++ b/src/components/PodLineGraph/selection.ts @@ -1,11 +1,33 @@ +/** + * Represents the visual state of a plot group + */ +export interface GroupState { + /** Whether the group should be visually highlighted (green/yellow) */ + isHighlighted: boolean; + /** Whether the group is in active state (yellow for hover/selection) */ + isActive: boolean; +} + +/** + * Derives the visual state of a plot group based on its properties + * + * @param hasHarvestablePlot - Whether the group contains harvestable plots + * @param hasSelectedPlot - Whether the group contains selected plots + * @param hasHoveredPlot - Whether the group is currently being hovered + * @param selectionHighlighted - Whether the group overlaps with a selection range + * @returns The derived visual state for the group + */ export function deriveGroupState( hasHarvestablePlot: boolean, hasSelectedPlot: boolean, hasHoveredPlot: boolean, - selectionGreen: boolean, -): { isGreen: boolean; isActive: boolean } { - // Green if harvestable, hovered, or selection indicates green for this context - const isGreen = hasHarvestablePlot || hasHoveredPlot || selectionGreen; + selectionHighlighted: boolean, +): GroupState { + // Group is highlighted if it's harvestable, hovered, or within selection range + const isHighlighted = hasHarvestablePlot || hasHoveredPlot || selectionHighlighted; + + // Group is active (yellow) if it's hovered or selected const isActive = hasHoveredPlot || hasSelectedPlot; - return { isGreen, isActive }; + + return { isHighlighted, isActive }; } diff --git a/src/components/ui/Tabs.tsx b/src/components/ui/Tabs.tsx index 6192db1b0..8e68118b7 100644 --- a/src/components/ui/Tabs.tsx +++ b/src/components/ui/Tabs.tsx @@ -3,7 +3,6 @@ import { type VariantProps, cva } from "class-variance-authority"; import * as React from "react"; import { cn } from "@/utils/utils"; -import clsx from "clsx"; const Tabs = TabsPrimitive.Root; @@ -14,6 +13,7 @@ const tabsListVariants = cva("inline-flex items-center", { "h-[3.25rem] justify-center rounded-[0.75rem] bg-white border border-pinto-gray-2 p-0.5 sm:p-1 text-muted-foreground", text: "flex-row justify-between overflow-x-auto", textSecondary: "flex flex-row gap-4 w-full overflow-x-auto", + textSecondaryLarge: "flex flex-row gap-6 w-full overflow-x-auto", }, borderBottom: { true: "border-b", @@ -34,11 +34,16 @@ const tabsTriggerVariants = cva( primary: "rounded-[0.75rem] text-pinto-gray-4 px-3 text-[1rem] sm:text-[1.25rem] py-2.5 sm:py-1.5 font-medium ring-offset-background focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:bg-pinto-green-1 data-[state=active]:text-pinto-green data-[state=active]:shadow-sm", text: "pinto-h3 py-2 pr-4 pl-0 text-left data-[state=active]:text-pinto-secondary data-[state=inactive]:text-pinto-gray-4", - textSecondary: clsx( + textSecondary: cn( "pb-2 border-b-2 pinto-sm", "data-[state=inactive]:text-pinto-gray-4 data-[state=inactive]:border-transparent", "data-[state=active]:border-pinto-green-4 data-[state=active]:font-medium", ), + textSecondaryLarge: cn( + "pb-2 border-b-2 pinto-body", + "data-[state=inactive]:text-pinto-gray-4 data-[state=inactive]:border-transparent", + "data-[state=active]:border-pinto-green-4 data-[state=active]:font-semibold", + ), }, }, defaultVariants: { @@ -49,18 +54,39 @@ const tabsTriggerVariants = cva( // Context for sharing variant between TabsList and TabsTrigger type TabsVariant = VariantProps["variant"]; -const TabsVariantContext = React.createContext(undefined); + +interface TabsVariantContextValue { + variant: TabsVariant; +} + +const TabsVariantContext = React.createContext(null); + +/** + * Hook to access the tabs variant from context + */ +function useTabsVariant(): TabsVariant { + const context = React.useContext(TabsVariantContext); + return context?.variant ?? "primary"; +} export interface TabsListProps extends React.ComponentPropsWithoutRef, VariantProps {} const TabsList = React.forwardRef, TabsListProps>( - ({ className, variant, borderBottom, ...props }, ref) => ( - - - - ), + ({ className, variant, borderBottom, ...props }, ref) => { + const contextValue = React.useMemo(() => ({ variant }), [variant]); + + return ( + + + + ); + }, ); TabsList.displayName = TabsPrimitive.List.displayName; @@ -70,9 +96,8 @@ export interface TabsTriggerProps const TabsTrigger = React.forwardRef, TabsTriggerProps>( ({ className, variant, ...props }, ref) => { - // Use provided variant, fallback to context, then default - const contextVariant = React.useContext(TabsVariantContext); - const finalVariant = variant ?? contextVariant ?? "primary"; + const contextVariant = useTabsVariant(); + const finalVariant = variant ?? contextVariant; return ( { - if (window.innerWidth > 1600) { - return 90; - } else if (window.innerWidth > 1100) { - return 80; - } else { - return 40; - } +const MILLION = 1_000_000; +const TOOLTIP_Z_INDEX = 1; +const CHART_MAX_PRICE = 100; + +// Responsive breakpoints for tooltip positioning +const BREAKPOINT_XL = 1600; +const BREAKPOINT_LG = 1100; + +const TOOLTIP_OFFSET = { + TOP: { XL: 90, LG: 80, DEFAULT: 40 }, + BOTTOM: { XL: 175, LG: 130, DEFAULT: 90 }, +}; + +const getPointTopOffset = (): number => { + const width = window.innerWidth; + if (width > BREAKPOINT_XL) return TOOLTIP_OFFSET.TOP.XL; + if (width > BREAKPOINT_LG) return TOOLTIP_OFFSET.TOP.LG; + return TOOLTIP_OFFSET.TOP.DEFAULT; }; -const getPointBottomOffset = () => { - if (window.innerWidth > 1600) { - return 175; - } else if (window.innerWidth > 1100) { - return 130; - } else { - return 90; - } +const getPointBottomOffset = (): number => { + const width = window.innerWidth; + if (width > BREAKPOINT_XL) return TOOLTIP_OFFSET.BOTTOM.XL; + if (width > BREAKPOINT_LG) return TOOLTIP_OFFSET.BOTTOM.LG; + return TOOLTIP_OFFSET.BOTTOM.DEFAULT; }; type MarketScatterChartDataPoint = { @@ -66,82 +75,81 @@ type MarketScatterChartData = { pointRadius: number; }; +/** + * Transforms raw market data into scatter chart format + */ const shapeScatterChartData = (data: any[], harvestableIndex: TokenValue): MarketScatterChartData[] => { - return ( - data?.reduce( - (acc, event) => { - // Skip Fill Orders - if ("toFarmer" in event) { - return acc; + if (!data) return []; + + return data.reduce( + (acc, event) => { + // Skip Fill Orders + if ("toFarmer" in event) { + return acc; + } + + const price = event.pricePerPod.toNumber(); + const eventId = event.id; + const eventType: "ORDER" | "LISTING" = event.type as "ORDER" | "LISTING"; + + if ("beanAmount" in event) { + // Handle Orders + const amount = event.beanAmount.div(event.pricePerPod).toNumber(); + const fillPct = event.beanAmountFilled.div(event.beanAmount).mul(100).toNumber(); + const status = fillPct > 99 ? "FILLED" : event.status === "CANCELLED_PARTIAL" ? "CANCELLED" : event.status; + const placeInLine = event.maxPlaceInLine.toNumber(); + + if (status === "ACTIVE" && placeInLine !== null && price !== null) { + acc[0].data.push({ + x: placeInLine / MILLION, + y: price, + eventId, + eventType, + status, + amount, + placeInLine, + }); } + } else if ("originalAmount" in event) { + // Handle Listings + const amount = event.originalAmount.toNumber(); + const fillPct = event.filled.div(event.originalAmount).mul(100).toNumber(); + const status = fillPct > 99 ? "FILLED" : event.status === "CANCELLED_PARTIAL" ? "CANCELLED" : event.status; + const placeInLine = status === "ACTIVE" ? event.index.sub(harvestableIndex).toNumber() : null; + const eventIndex = event.index.toNumber(); - let amount: number | null = null; - let status = ""; - let placeInLine: number | null = null; - let eventIndex: number | null = null; - const price = event.pricePerPod.toNumber(); - const eventId = event.id; - const eventType: "ORDER" | "LISTING" = event.type as "ORDER" | "LISTING"; - - if ("beanAmount" in event) { - // Handle Orders - amount = event.beanAmount.div(event.pricePerPod).toNumber(); - const fillPct = event.beanAmountFilled.div(event.beanAmount).mul(100).toNumber(); - status = fillPct > 99 ? "FILLED" : event.status === "CANCELLED_PARTIAL" ? "CANCELLED" : event.status; - placeInLine = event.maxPlaceInLine.toNumber(); - - if (status === "ACTIVE" && placeInLine !== null && price !== null) { - acc[0].data.push({ - x: placeInLine / 1_000_000, - y: price, - eventId, - eventType, - status, - amount, - placeInLine, - }); - } - } else if ("originalAmount" in event) { - // Handle Listings - amount = event.originalAmount.toNumber(); - const fillPct = event.filled.div(event.originalAmount).mul(100).toNumber(); - status = fillPct > 99 ? "FILLED" : event.status === "CANCELLED_PARTIAL" ? "CANCELLED" : event.status; - placeInLine = status === "ACTIVE" ? event.index.sub(harvestableIndex).toNumber() : null; - eventIndex = event.index.toNumber(); - - if (placeInLine !== null && price !== null) { - acc[1].data.push({ - x: placeInLine / 1_000_000, - y: price, - eventId, - eventIndex, - eventType, - status, - amount, - placeInLine, - }); - } + if (placeInLine !== null && price !== null) { + acc[1].data.push({ + x: placeInLine / MILLION, + y: price, + eventId, + eventIndex, + eventType, + status, + amount, + placeInLine, + }); } + } - return acc; + return acc; + }, + [ + { + label: "Orders", + data: [] as MarketScatterChartDataPoint[], + color: "#40b0a6", // teal + pointStyle: "circle" as PointStyle, + pointRadius: 6, + }, + { + label: "Listings", + data: [] as MarketScatterChartDataPoint[], + color: "#e0b57d", // tan + pointStyle: "rect" as PointStyle, + pointRadius: 6, }, - [ - { - label: "Orders", - data: [] as MarketScatterChartDataPoint[], - color: "#40b0a6", // teal - pointStyle: "circle" as PointStyle, - pointRadius: 6, - }, - { - label: "Listings", - data: [] as MarketScatterChartDataPoint[], - color: "#e0b57d", // tan - pointStyle: "rect" as PointStyle, - pointRadius: 6, - }, - ], - ) || [] + ], ); }; @@ -151,7 +159,7 @@ export function Market() { const navigate = useNavigate(); const { data, isLoaded } = useAllMarket(); const podLine = usePodLine(); - const podLineAsNumber = podLine.toNumber() / 1000000; + const podLineAsNumber = podLine.toNumber() / MILLION; const harvestableIndex = useHarvestableIndex(); const scatterChartData: MarketScatterChartData[] = useMemo( @@ -194,7 +202,7 @@ export function Market() { tooltipEl.style.color = "black"; tooltipEl.style.borderRadius = "10px"; tooltipEl.style.border = "1px solid #D9D9D9"; - tooltipEl.style.zIndex = "1"; + tooltipEl.style.zIndex = String(TOOLTIP_Z_INDEX); // Basically all of this is custom logic for 3 different breakpoints to either display the tooltip to the top right or bottom right of the point. const topOfPoint = position.y + getPointTopOffset(); const bottomOfPoint = position.y + getPointBottomOffset(); @@ -246,6 +254,14 @@ export function Market() { } }, []); + useEffect(() => { + if (mode === "buy" && !id) { + navigate("/market/pods/buy/fill", { replace: true }); + } else if (mode === "sell" && !id) { + navigate("/market/pods/sell/create", { replace: true }); + } + }, [id, mode, navigate]); + const handleChangeTabFactory = useCallback( (selection: string) => () => { // Track activity tab changes @@ -273,26 +289,32 @@ export function Market() { [mode], ); - const onPointClick = (event: ChartEvent, activeElements: ActiveElement[], chart: Chart) => { - const dataPoint = scatterChartData[activeElements[0].datasetIndex].data[activeElements[0].index] as any; + const onPointClick = useCallback( + (_event: ChartEvent, activeElements: ActiveElement[], _chart: Chart) => { + if (!activeElements.length) return; - if (!dataPoint) return; + const { datasetIndex, index } = activeElements[0]; + const dataPoint = scatterChartData[datasetIndex]?.data[index]; - // Track chart point click event - trackSimpleEvent(ANALYTICS_EVENTS.MARKET.CHART_POINT_CLICK, { - event_type: dataPoint?.eventType?.toLowerCase() ?? "unknown", - event_status: dataPoint?.status?.toLowerCase() ?? "unknown", - price_per_pod: dataPoint?.y ?? 0, - place_in_line_millions: Math.floor(dataPoint?.x ?? -1), - current_mode: mode ?? "unknown", - }); + if (!dataPoint) return; - if (dataPoint.eventType === "LISTING") { - navigate(`/market/pods/buy/fill?listingId=${dataPoint.eventId}`); - } else { - navigate(`/market/pods/sell/fill?orderId=${dataPoint.eventId}`); - } - }; + // Track chart point click event + trackSimpleEvent(ANALYTICS_EVENTS.MARKET.CHART_POINT_CLICK, { + event_type: dataPoint.eventType.toLowerCase(), + event_status: dataPoint.status.toLowerCase(), + price_per_pod: dataPoint.y, + place_in_line_millions: Math.floor(dataPoint.x), + current_mode: mode ?? "unknown", + }); + + if (dataPoint.eventType === "LISTING") { + navigate(`/market/pods/buy/fill?listingId=${dataPoint.eventId}`); + } else { + navigate(`/market/pods/sell/fill?orderId=${dataPoint.eventId}`); + } + }, + [scatterChartData, mode, navigate], + ); const viewMode = mode; @@ -336,7 +358,7 @@ export function Market() { @@ -360,14 +382,18 @@ export function Market() { {tab === TABLE_SLUGS[3] && }
-
-
- - {viewMode === "buy" && id === "create" && } - {viewMode === "buy" && id === "fill" && } - {viewMode === "sell" && id === "create" && } - {viewMode === "sell" && id === "fill" && } -
+
+ +
+ +
+ {viewMode === "buy" && id === "create" && } + {viewMode === "buy" && id === "fill" && } + {viewMode === "sell" && id === "create" && } + {viewMode === "sell" && id === "fill" && } +
+
+
diff --git a/src/pages/market/MarketModeSelect.tsx b/src/pages/market/MarketModeSelect.tsx index 130865a87..30ecd6e0b 100644 --- a/src/pages/market/MarketModeSelect.tsx +++ b/src/pages/market/MarketModeSelect.tsx @@ -1,36 +1,71 @@ import { Separator } from "@/components/ui/Separator"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/Tabs"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; -import { useFarmerField } from "@/state/useFarmerField"; import { trackSimpleEvent } from "@/utils/analytics"; -import { useCallback } from "react"; +import { useCallback, useMemo } from "react"; import { useNavigate, useParams } from "react-router-dom"; +type MarketMode = "buy" | "sell"; +type MarketAction = "create" | "fill"; + interface MarketModeSelectProps { onMainSelectionChange?: (v: string) => void; onSecondarySelectionChange?: (v: string) => void; } +// Constants +const DEFAULT_MODE: MarketMode = "buy"; +const DEFAULT_ACTION_BY_MODE: Record = { + buy: "fill", + sell: "create", +}; + +const ACTION_LABELS: Record> = { + buy: { + create: "Order", + fill: "Fill", + }, + sell: { + create: "List", + fill: "Fill", + }, +}; + export default function MarketModeSelect({ onMainSelectionChange, onSecondarySelectionChange }: MarketModeSelectProps) { const { mode, id } = useParams(); const navigate = useNavigate(); - const farmerField = useFarmerField(); - const mainTab = mode === "buy" || mode === "sell" ? mode : undefined; - // Only set secondaryTab if id is explicitly "create" or "fill" - const secondaryTab = id === "create" ? "create" : id === "fill" ? "fill" : undefined; - const hasNoPods = farmerField.plots.length === 0; + // Derive current state from URL params + const { mainTab, secondaryTab, mainTabValue, secondaryTabValue } = useMemo(() => { + const validMode = mode === "buy" || mode === "sell" ? (mode as MarketMode) : undefined; + const validAction = id === "create" || id === "fill" ? (id as MarketAction) : undefined; + + // Only use default mode if a valid mode exists, otherwise leave undefined + const currentMode = validMode; + const defaultAction = validMode ? DEFAULT_ACTION_BY_MODE[validMode] : undefined; + const currentAction = validAction ?? defaultAction; + + return { + mainTab: validMode, + secondaryTab: validAction ?? (validMode ? DEFAULT_ACTION_BY_MODE[validMode] : undefined), + mainTabValue: currentMode ?? DEFAULT_MODE, // Fallback for Tabs component + secondaryTabValue: currentAction ?? DEFAULT_ACTION_BY_MODE[DEFAULT_MODE], // Fallback for Tabs component + }; + }, [mode, id]); const handleMainChange = useCallback( (v: string) => { + const newMode = v as MarketMode; + const defaultAction = DEFAULT_ACTION_BY_MODE[newMode]; + // Track buy/sell tab changes trackSimpleEvent(ANALYTICS_EVENTS.MARKET.BUY_SELL_TAB_CLICK, { previous_mode: mainTab, - new_mode: v, + new_mode: newMode, secondary_tab: secondaryTab, }); - navigate(`/market/pods/${v}`); + navigate(`/market/pods/${newMode}/${defaultAction}`); onMainSelectionChange?.(v); }, [navigate, onMainSelectionChange, mainTab, secondaryTab], @@ -38,6 +73,9 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel const handleSecondaryChange = useCallback( (v: string) => { + if (!mainTab) { + return; + } // Track create/fill tab changes trackSimpleEvent(ANALYTICS_EVENTS.MARKET.CREATE_FILL_TAB_CLICK, { previous_action: secondaryTab, @@ -57,35 +95,26 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel return (
- - + + Buy Pods Sell Pods {mainTab ? ( <> - {mainTab === "sell" && hasNoPods ? ( - <> - -
-
- You have no Pods. You can get Pods by placing a bid on the Field or selecting{" "} - Buy Pods! -
-
- - ) : ( - <> - - - - {mainTab === "buy" ? "Order" : "List"} - Fill - - - - )} + + + + {ACTION_LABELS[mainTab].create} + {ACTION_LABELS[mainTab].fill} + + ) : (
diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index ea9258f87..17da1d309 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -1,9 +1,7 @@ import settingsIcon from "@/assets/misc/Settings.svg"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; -import ComboPlotInputField from "@/components/ComboPlotInputField"; import PodLineGraph from "@/components/PodLineGraph"; -import SimpleInputField from "@/components/SimpleInputField"; import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Button } from "@/components/ui/Button"; import { Input } from "@/components/ui/Input"; @@ -39,13 +37,16 @@ interface PodListingData { amount: TokenValue; // list edilecek pod miktarı } +// Constants const PRICE_PER_POD_CONFIG = { MAX: 1, - MIN: 0.000001, + MIN: 0.001, DECIMALS: 6, DECIMAL_MULTIPLIER: 1_000_000, // 10^6 for 6 decimals } as const; +const MILLION = 1_000_000; + const TextAdornment = ({ text, className }: { text: string; className?: string }) => { return
{text}
; }; @@ -81,29 +82,22 @@ export default function CreateListing() { const [plot, setPlot] = useState([]); const [amount, setAmount] = useState(0); const [podRange, setPodRange] = useState<[number, number]>([0, 0]); - const [pricePerPod, setPricePerPod] = useState(undefined); - const [pricePerPodInput, setPricePerPodInput] = useState(""); + const initialPrice = removeTrailingZeros(PRICE_PER_POD_CONFIG.MIN.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); + const [pricePerPod, setPricePerPod] = useState(PRICE_PER_POD_CONFIG.MIN); + const [pricePerPodInput, setPricePerPodInput] = useState(initialPrice); const [balanceTo, setBalanceTo] = useState(FarmToMode.EXTERNAL); // Default: Wallet Balance (toggle off) const [isSuccessful, setIsSuccessful] = useState(false); const [successAmount, setSuccessAmount] = useState(null); const [successPrice, setSuccessPrice] = useState(null); const podIndex = usePodIndex(); const maxExpiration = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; - const [expiresIn, setExpiresIn] = useState(maxExpiration); // Auto-set to max expiration + const [expiresIn, setExpiresIn] = useState(null); + const selectedExpiresIn = expiresIn ?? maxExpiration; const minFill = TokenValue.fromHuman(1, PODS.decimals); const [showAdvancedSettings, setShowAdvancedSettings] = useState(false); const plotPosition = plot.length > 0 ? plot[0].index.sub(harvestableIndex) : TV.ZERO; - const maxExpirationValidation = useMemo( - () => ({ - minValue: 1, - maxValue: maxExpiration, - maxDecimals: 0, - }), - [maxExpiration], - ); - // Calculate max pods based on selected plots OR all farmer plots const maxPodAmount = useMemo(() => { const plotsToUse = plot.length > 0 ? plot : farmerField.plots; @@ -132,8 +126,7 @@ export default function CreateListing() { const selectedPodRange = useMemo(() => { if (plot.length === 0) return undefined; - // Sort plots by index - const sortedPlots = [...plot].sort((a, b) => a.index.sub(b.index).toNumber()); + const sortedPlots = plot; // Already sorted in handlePlotSelection // Helper function to convert pod offset to absolute index const offsetToAbsoluteIndex = (offset: number): TokenValue => { @@ -166,7 +159,7 @@ export default function CreateListing() { const listingData = useMemo((): PodListingData[] => { if (plot.length === 0 || amount === 0) return []; - const sortedPlots = [...plot].sort((a, b) => a.index.sub(b.index).toNumber()); + const sortedPlots = plot; // Already sorted in handlePlotSelection const result: PodListingData[] = []; // Calculate cumulative pod amounts to find which plots are affected @@ -202,6 +195,11 @@ export default function CreateListing() { return result; }, [plot, podRange, amount]); + // Helper function to sort plots by index + const sortPlotsByIndex = useCallback((plots: Plot[]): Plot[] => { + return [...plots].sort((a, b) => a.index.sub(b.index).toNumber()); + }, []); + // Plot selection handler with tracking const handlePlotSelection = useCallback( (plots: Plot[]) => { @@ -210,8 +208,7 @@ export default function CreateListing() { previous_count: plot.length, }); - // Sort plots by index to ensure consistent ordering - const sortedPlots = [...plots].sort((a, b) => a.index.sub(b.index).toNumber()); + const sortedPlots = sortPlotsByIndex(plots); setPlot(sortedPlots); // Reset range when plots change - slider always starts from first plot and ends at last plot @@ -224,7 +221,7 @@ export default function CreateListing() { setAmount(0); } }, - [plot.length], + [plot.length, sortPlotsByIndex], ); // Pod range slider handler (two thumbs) @@ -252,6 +249,17 @@ export default function CreateListing() { const handlePriceInputChange = useCallback((e: React.ChangeEvent) => { const value = e.target.value; setPricePerPodInput(value); + + if (value === "" || value === ".") { + setPricePerPod(PRICE_PER_POD_CONFIG.MIN); + return; + } + + const numValue = Number.parseFloat(value); + if (!Number.isNaN(numValue)) { + const formatted = clampAndFormatPrice(numValue); + setPricePerPod(formatted); + } }, []); const handlePriceInputBlur = useCallback(() => { @@ -261,8 +269,9 @@ export default function CreateListing() { setPricePerPod(formatted); setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); } else { - setPricePerPodInput(""); - setPricePerPod(undefined); + const formatted = clampAndFormatPrice(PRICE_PER_POD_CONFIG.MIN); + setPricePerPod(formatted); + setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); } }, [pricePerPodInput]); @@ -302,10 +311,11 @@ export default function CreateListing() { setPlot([]); setAmount(0); setPodRange([0, 0]); - setPricePerPod(undefined); - setPricePerPodInput(""); + setPricePerPod(PRICE_PER_POD_CONFIG.MIN); + setPricePerPodInput(initialPrice); + setExpiresIn(null); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); - }, [amount, pricePerPod, queryClient, allQK]); + }, [amount, pricePerPod, queryClient, allQK, initialPrice]); // state for toast txns const { isConfirming, writeWithEstimateGas, submitting, setSubmitting } = useTransaction({ @@ -318,7 +328,7 @@ export default function CreateListing() { if ( !pricePerPod || pricePerPod <= 0 || - !expiresIn || + selectedExpiresIn <= 0 || !amount || amount <= 0 || !account || @@ -331,12 +341,12 @@ export default function CreateListing() { trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_LIST_CREATE, { has_price_per_pod: !!pricePerPod, listing_count: listingData.length, - plot_position_millions: plot.length > 0 ? Math.round(plotPosition.div(1_000_000).toNumber()) : 0, + plot_position_millions: plot.length > 0 ? Math.round(plotPosition.div(MILLION).toNumber()) : 0, }); // pricePerPod should be encoded as uint24 with 6 decimals (0.5 * 1_000_000 = 500000) const encodedPricePerPod = pricePerPod ? Math.floor(pricePerPod * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) : 0; - const _expiresIn = TokenValue.fromHuman(expiresIn, PODS.decimals); + const _expiresIn = TokenValue.fromHuman(selectedExpiresIn, PODS.decimals); const maxHarvestableIndex = _expiresIn.add(harvestableIndex); try { setSubmitting(true); @@ -385,7 +395,7 @@ export default function CreateListing() { account, amount, pricePerPod, - expiresIn, + selectedExpiresIn, balanceTo, harvestableIndex, minFill, @@ -393,19 +403,31 @@ export default function CreateListing() { listingData, plotPosition, setSubmitting, - mainToken.decimals, diamondAddress, writeWithEstimateGas, ]); // ui state - const disabled = !pricePerPod || !amount || !account || plot.length === 0; + const disabled = !pricePerPod || !amount || !account || plot.length === 0 || selectedExpiresIn <= 0; return (
{/* Plot Selection Section */}
-

Select the Plot(s) you want to List (i):

+
+

Select the Plot(s) you want to List (i):

+ +
{/* Pod Line Graph Visualization */}

1

@@ -480,10 +502,8 @@ export default function CreateListing() { value={pricePerPodInput} onChange={handlePriceInputChange} onBlur={handlePriceInputBlur} - placeholder="0.00" + placeholder="0.001" outlined - containerClassName="" - className="" endIcon={} />
@@ -499,21 +519,6 @@ export default function CreateListing() {
)}
- {/* Advanced Settings Toggle */} -
-

Settings

- -
{/* Advanced Settings - Collapsible */}

Expires In

- - {!!expiresIn && ( +
+

{formatter.noDec(0)}

+ setExpiresIn(value[0])} + className="flex-1" + /> +
+ {formatter.noDec(maxExpiration)} +
+
+ {selectedExpiresIn > 0 && (

- This listing will automatically expire after {formatter.noDec(expiresIn)} more Pods become + This listing will automatically expire after{" "} + {formatter.noDec(selectedExpiresIn)} more Pods become Harvestable.

)} @@ -599,32 +613,33 @@ export default function CreateListing() { ); } -const ActionSummary = ({ - podAmount, - listingData, - pricePerPod, - harvestableIndex, -}: { podAmount: number; listingData: PodListingData[]; pricePerPod: number; harvestableIndex: TokenValue }) => { +interface ActionSummaryProps { + podAmount: number; + listingData: PodListingData[]; + pricePerPod: number; + harvestableIndex: TokenValue; +} + +const ActionSummary = ({ podAmount, listingData, pricePerPod, harvestableIndex }: ActionSummaryProps) => { const beansOut = podAmount * pricePerPod; - // Format line positions - const formatLinePositions = (): string => { + // Format line positions - memoized to avoid recalculation + const linePositions = useMemo((): string => { if (listingData.length === 0) return ""; if (listingData.length === 1) { const placeInLine = listingData[0].index.sub(harvestableIndex); return `@ ${placeInLine.toHuman("short")} in Line`; } - // Multiple plots: show range - const sortedData = [...listingData].sort((a, b) => a.index.sub(b.index).toNumber()); - const firstPlace = sortedData[0].index.sub(harvestableIndex); - const lastPlace = sortedData[sortedData.length - 1].index.sub(harvestableIndex); + // Multiple plots: show range (already sorted) + const firstPlace = listingData[0].index.sub(harvestableIndex); + const lastPlace = listingData[listingData.length - 1].index.sub(harvestableIndex); if (firstPlace.eq(lastPlace)) { return `@ ${firstPlace.toHuman("short")} in Line`; } - return `@ ${firstPlace.toHuman("short")} - ${lastPlace.toHuman("short")} in Lines`; - }; + return `@ ${firstPlace.toHuman("short")} - ${lastPlace.toHuman("short")} in Line`; + }, [listingData, harvestableIndex]); return (
@@ -635,7 +650,7 @@ const ActionSummary = ({ {formatter.number(beansOut, { minDecimals: 0, maxDecimals: 2 })} Pinto

- in exchange for {formatter.noDec(podAmount)} Pods {formatLinePositions()}. + in exchange for {formatter.noDec(podAmount)} Pods {linePositions}.

diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 2485dd87d..95568eb12 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -4,7 +4,6 @@ import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; -import SimpleInputField from "@/components/SimpleInputField"; import SlippageButton from "@/components/SlippageButton"; import SmartApprovalButton from "@/components/SmartApprovalButton"; import SmartSubmitButton from "@/components/SmartSubmitButton"; @@ -39,13 +38,17 @@ import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; +// Constants const PRICE_PER_POD_CONFIG = { MAX: 1, - MIN: 0.000001, + MIN: 0.001, DECIMALS: 6, DECIMAL_MULTIPLIER: 1_000_000, // 10^6 for 6 decimals } as const; +const MILLION = 1_000_000; +const MIN_FILL_AMOUNT = "1"; + const TextAdornment = ({ text, className }: { text: string; className?: string }) => { return
{text}
; }; @@ -151,9 +154,10 @@ export default function CreateOrder() { const podIndex = usePodIndex(); const harvestableIndex = useHarvestableIndex(); const maxPlace = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; + const initialPrice = removeTrailingZeros(PRICE_PER_POD_CONFIG.MIN.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); const [maxPlaceInLine, setMaxPlaceInLine] = useState(undefined); - const [pricePerPod, setPricePerPod] = useState(undefined); - const [pricePerPodInput, setPricePerPodInput] = useState(""); + const [pricePerPod, setPricePerPod] = useState(PRICE_PER_POD_CONFIG.MIN); + const [pricePerPodInput, setPricePerPodInput] = useState(initialPrice); // set preferred token useEffect(() => { @@ -188,6 +192,17 @@ export default function CreateOrder() { const handlePriceInputChange = useCallback((e: React.ChangeEvent) => { const value = e.target.value; setPricePerPodInput(value); + + if (value === "" || value === ".") { + setPricePerPod(PRICE_PER_POD_CONFIG.MIN); + return; + } + + const numValue = Number.parseFloat(value); + if (!Number.isNaN(numValue)) { + const formatted = clampAndFormatPrice(numValue); + setPricePerPod(formatted); + } }, []); const handlePriceInputBlur = useCallback(() => { @@ -197,8 +212,9 @@ export default function CreateOrder() { setPricePerPod(formatted); setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); } else { - setPricePerPodInput(""); - setPricePerPod(undefined); + const formatted = clampAndFormatPrice(PRICE_PER_POD_CONFIG.MIN); + setPricePerPod(formatted); + setPricePerPodInput(removeTrailingZeros(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS))); } }, [pricePerPodInput]); @@ -243,10 +259,10 @@ export default function CreateOrder() { setAmountIn(""); setMaxPlaceInLine(undefined); - setPricePerPod(undefined); - setPricePerPodInput(""); + setPricePerPod(PRICE_PER_POD_CONFIG.MIN); + setPricePerPodInput(initialPrice); allQK.forEach((key) => queryClient.invalidateQueries({ queryKey: key })); - }, [queryClient, allQK]); + }, [queryClient, allQK, initialPrice]); // state for toast txns const { isConfirming, writeWithEstimateGas, submitting, setSubmitting } = useTransaction({ @@ -303,7 +319,7 @@ export default function CreateOrder() { const _maxPlaceInLine = TokenValue.fromHuman(maxPlaceInLine?.toString() || "0", PODS.decimals); // pricePerPod should be encoded as uint24 with 6 decimals (0.5 * 1_000_000 = 500000) const encodedPricePerPod = pricePerPod ? Math.floor(pricePerPod * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) : 0; - const minFill = TokenValue.fromHuman("1", PODS.decimals); + const minFill = TokenValue.fromHuman(MIN_FILL_AMOUNT, PODS.decimals); const orderCallStruct = createPodOrder( account, @@ -351,7 +367,6 @@ export default function CreateOrder() { swapBuild, tokenIn.symbol, podsOut, - pricePerPod, amountIn, ]); @@ -361,10 +376,10 @@ export default function CreateOrder() { const formIsFilled = !!pricePerPod && !!maxPlaceInLine && !!account && amountInTV.gt(0); const disabled = !formIsFilled || swapDataNotReady; - // Calculate orderRangeEnd for PodLineGraph overlay (memoized) + // Calculate orderRangeEnd for PodLineGraph overlay const orderRangeEnd = useMemo(() => { if (!maxPlaceInLine) return undefined; - return harvestableIndex.add(TokenValue.fromHuman(maxPlaceInLine, PODS.decimals)); + return harvestableIndex.add(TokenValue.fromHuman(maxPlaceInLine.toString(), PODS.decimals)); }, [maxPlaceInLine, harvestableIndex]); return ( @@ -414,7 +429,7 @@ export default function CreateOrder() {
{/* Price Per Pod */}
-

Amount I am willing to pay for each Pod for:

+

I am willing to buy Pods up to:

0

@@ -424,7 +439,7 @@ export default function CreateOrder() { step={0.000001} value={[pricePerPod || PRICE_PER_POD_CONFIG.MIN]} onValueChange={handlePriceSliderChange} - className="w-[300px]" + className="w-[18rem]" />

1

@@ -435,10 +450,8 @@ export default function CreateOrder() { onChange={handlePriceInputChange} onBlur={handlePriceInputBlur} onFocus={(e) => e.target.select()} - placeholder="0.00" + placeholder="0.001" outlined - containerClassName="" - className="" endIcon={} />
@@ -555,15 +568,20 @@ export default function CreateOrder() { ); } -const ActionSummary = ({ - beansIn, - pricePerPod, - maxPlaceInLine, -}: { beansIn: TV; pricePerPod: number; maxPlaceInLine: number }) => { - // pricePerPod is Pinto per Pod (0-1), convert to TokenValue with same decimals as beansIn (mainToken decimals) - // Then divide to get pods and convert to Pods decimals - const pricePerPodTV = TokenValue.fromHuman(pricePerPod.toString(), beansIn.decimals); - const podsOut = beansIn.div(pricePerPodTV).reDecimal(PODS.decimals); +interface ActionSummaryProps { + beansIn: TV; + pricePerPod: number; + maxPlaceInLine: number; +} + +const ActionSummary = ({ beansIn, pricePerPod, maxPlaceInLine }: ActionSummaryProps) => { + // Calculate pods out - memoized to avoid recalculation + const podsOut = useMemo(() => { + // pricePerPod is Pinto per Pod (0-1), convert to TokenValue with same decimals as beansIn (mainToken decimals) + // Then divide to get pods and convert to Pods decimals + const pricePerPodTV = TokenValue.fromHuman(pricePerPod.toString(), beansIn.decimals); + return beansIn.div(pricePerPodTV).reDecimal(PODS.decimals); + }, [beansIn, pricePerPod]); return (
diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index cd444213d..d12eafa2e 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -53,6 +53,9 @@ const PRICE_PER_POD_CONFIG = { } as const; const PRICE_SLIDER_STEP = 0.001; +const MILLION = 1_000_000; +const DEFAULT_PRICE_INPUT = "0.001"; +const PLACE_MARGIN_PERCENT = 0.01; // 1% margin for place in line range const TextAdornment = ({ text, className }: { text: string; className?: string }) => { return
{text}
; @@ -122,7 +125,7 @@ export default function FillListing() { // Price per pod filter state const [maxPricePerPod, setMaxPricePerPod] = useState(0); - const [maxPricePerPodInput, setMaxPricePerPodInput] = useState("0.000000"); + const [maxPricePerPodInput, setMaxPricePerPodInput] = useState(DEFAULT_PRICE_INPUT); // Place in line range state const podIndex = usePodIndex(); @@ -188,7 +191,7 @@ export default function FillListing() { // Set place in line range to include this listing with a small margin // Clamp to valid range [0, maxPlace] - const margin = Math.max(1, Math.floor(maxPlace * 0.01)); // 1% margin or at least 1 + const margin = Math.max(1, Math.floor(maxPlace * PLACE_MARGIN_PERCENT)); const minPlace = Math.max(0, Math.floor(placeInLine - margin)); const maxPlaceValue = Math.min(maxPlace, Math.ceil(placeInLine + margin)); setPlaceInLineRange([minPlace, maxPlaceValue]); @@ -218,6 +221,18 @@ export default function FillListing() { const handlePriceInputChange = useCallback((e: React.ChangeEvent) => { const value = e.target.value; setMaxPricePerPodInput(value); + + if (value === "" || value === ".") { + setMaxPricePerPod(0); + return; + } + + const numValue = Number.parseFloat(value); + if (!Number.isNaN(numValue)) { + const clamped = Math.max(PRICE_PER_POD_CONFIG.MIN, Math.min(PRICE_PER_POD_CONFIG.MAX, numValue)); + const formatted = formatPricePerPod(clamped); + setMaxPricePerPod(formatted); + } }, []); const handlePriceInputBlur = useCallback(() => { @@ -388,7 +403,6 @@ export default function FillListing() { const listingRemainingPods = TokenValue.fromBlockchain(listing.remainingAmount, PODS.decimals); const maxBeansForListing = listingRemainingPods.mul(listingPrice); - // Take the minimum of: remaining beans and max beans we can spend on this listing const beansToSpend = TokenValue.min(remainingBeans, maxBeansForListing); if (beansToSpend.gt(0)) { result.push({ listing, beanAmount: beansToSpend }); @@ -401,11 +415,9 @@ export default function FillListing() { // Calculate weighted average for eligible listings const eligibleSummary = useMemo(() => { - if (listingsToFill.length === 0) { - return null; - } + if (listingsToFill.length === 0) return null; - // If only one listing, use its price directly (no need for average) + // Single listing - use its price directly if (listingsToFill.length === 1) { const { listing, beanAmount } = listingsToFill[0]; const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals); @@ -424,15 +436,16 @@ export default function FillListing() { let totalPods = 0; let totalPlaceInLine = 0; - listingsToFill.forEach(({ listing, beanAmount }) => { + for (const { listing, beanAmount } of listingsToFill) { const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals); const podsFromListing = beanAmount.div(listingPrice); const listingPlace = TokenValue.fromBlockchain(listing.index, PODS.decimals).sub(harvestableIndex); - totalValue += listingPrice.toNumber() * podsFromListing.toNumber(); - totalPods += podsFromListing.toNumber(); - totalPlaceInLine += listingPlace.toNumber() * podsFromListing.toNumber(); - }); + const pods = podsFromListing.toNumber(); + totalValue += listingPrice.toNumber() * pods; + totalPods += pods; + totalPlaceInLine += listingPlace.toNumber() * pods; + } const avgPricePerPod = totalPods > 0 ? totalValue / totalPods : 0; const avgPlaceInLine = totalPods > 0 ? totalPlaceInLine / totalPods : 0; @@ -637,7 +650,7 @@ export default function FillListing() { step={PRICE_SLIDER_STEP} value={[maxPricePerPod]} onValueChange={handlePriceSliderChange} - className="w-[300px]" + className="w-[18rem]" />

1

@@ -648,10 +661,8 @@ export default function FillListing() { onChange={handlePriceInputChange} onBlur={handlePriceInputBlur} onFocus={(e) => e.target.select()} - placeholder="0.000000" + placeholder="0.001" outlined - containerClassName="" - className="" endIcon={} />
@@ -827,21 +838,19 @@ export default function FillListing() { ); } +interface ActionSummaryProps { + pricePerPod: TV; + plotPosition: TV; + beanAmount: TV; +} + /** * Displays summary of the fill transaction * Shows estimated pods to receive, average position, and pricing details */ -const ActionSummary = ({ - pricePerPod, - plotPosition, - beanAmount, -}: { - pricePerPod: TV; - plotPosition: TV; - beanAmount: TV; -}) => { - // Calculate estimated pods to receive - const estimatedPods = beanAmount.div(pricePerPod); +const ActionSummary = ({ pricePerPod, plotPosition, beanAmount }: ActionSummaryProps) => { + // Calculate estimated pods to receive - memoized to avoid recalculation + const estimatedPods = useMemo(() => beanAmount.div(pricePerPod), [beanAmount, pricePerPod]); return (
diff --git a/src/pages/market/actions/FillOrder.tsx b/src/pages/market/actions/FillOrder.tsx index f32c4e327..a2f0b6a58 100644 --- a/src/pages/market/actions/FillOrder.tsx +++ b/src/pages/market/actions/FillOrder.tsx @@ -27,10 +27,6 @@ import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; import CancelOrder from "./CancelOrder"; -//! TODO: ADD INPUT FIELD FOR POD AMOUNTS -//! TODO: SOLVE CHART REDIRECT ISSUE -//! TODO: ADD SETTINGS SECTION - // Constants const FIELD_ID = 0n; const MIN_PODS_THRESHOLD = 1; // Minimum pods required for order eligibility @@ -143,7 +139,7 @@ export default function FillOrder() { orderPositions: positions, totalCapacity: cumulative, }; - }, [allOrders?.podOrders, selectedOrderIds, mainToken.decimals]); + }, [allOrders, selectedOrderIds, mainToken.decimals]); const amount = podRange[1] - podRange[0]; @@ -151,9 +147,7 @@ export default function FillOrder() { const [rangeStart, rangeEnd] = podRange; return orderPositions - .filter((pos) => { - return pos.endPos > rangeStart && pos.startPos < rangeEnd; - }) + .filter((pos) => pos.endPos > rangeStart && pos.startPos < rangeEnd) .map((pos) => { const overlapStart = Math.max(pos.startPos, rangeStart); const overlapEnd = Math.min(pos.endPos, rangeEnd); @@ -171,7 +165,7 @@ export default function FillOrder() { const weightedAvgPricePerPod = useMemo(() => { if (ordersToFill.length === 0 || amount === 0) return 0; - // If only one order, use its price directly (no need for average) + // Single order - use its price directly if (ordersToFill.length === 1) { return TokenValue.fromBlockchain(ordersToFill[0].order.pricePerPod, mainToken.decimals).toNumber(); } @@ -180,11 +174,11 @@ export default function FillOrder() { let totalValue = 0; let totalPods = 0; - ordersToFill.forEach(({ order, amount: fillAmount }) => { + for (const { order, amount: fillAmount } of ordersToFill) { const orderPricePerPod = TokenValue.fromBlockchain(order.pricePerPod, mainToken.decimals).toNumber(); totalValue += orderPricePerPod * fillAmount; totalPods += fillAmount; - }); + } return totalPods > 0 ? totalValue / totalPods : 0; }, [ordersToFill, amount, mainToken.decimals]); @@ -310,12 +304,12 @@ export default function FillOrder() { }; // Track analytics for each order being filled - ordersToFill.forEach(({ order: orderToFill }) => { + for (const { order: orderToFill } of ordersToFill) { trackSimpleEvent(ANALYTICS_EVENTS.MARKET.POD_ORDER_FILL, { order_price_per_pod: Number(orderToFill.pricePerPod), order_max_place: Number(orderToFill.maxPlaceInLine), }); - }); + } try { setSubmitting(true); @@ -585,12 +579,6 @@ export default function FillOrder() {
- {/* OLD DESTINATION SECTION - COMMENTED OUT FOR POTENTIAL FUTURE USE */} - {/*
-

Destination

- -
*/} -
{ordersToFill.length > 0 && amount > 0 && ( @@ -641,8 +629,13 @@ export default function FillOrder() { ); } -const ActionSummary = ({ podAmount, pricePerPod }: { podAmount: number; pricePerPod: number }) => { - const beansOut = podAmount * pricePerPod; +interface ActionSummaryProps { + podAmount: number; + pricePerPod: number; +} + +const ActionSummary = ({ podAmount, pricePerPod }: ActionSummaryProps) => { + const beansOut = useMemo(() => podAmount * pricePerPod, [podAmount, pricePerPod]); return (
diff --git a/tailwind.config.js b/tailwind.config.js index fa500884c..9c1ce21d8 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -127,6 +127,7 @@ module.exports = { "morning-yellow-2": "#F1F88C", "warning-yellow": "#DCB505", "warning-orange": "#ED7A00", + "yellow-active": "#CCA702", "stalk-gold": "#D3B567", "seed-silver": "#7B9387", "pod-bronze": "#9F7F54", From 48a0338ac1bbe5c42c79e2ec7dae80595b254c6c Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 10 Nov 2025 02:14:58 +0300 Subject: [PATCH 39/54] Make Market Action Menu sticky, and add users pod line to Market Page --- src/components/PodLineGraph.tsx | 4 ++-- src/pages/Market.tsx | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 9acf17eb7..55a8da69c 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -279,14 +279,14 @@ export default function PodLineGraph({ const bottomAxisLabels = topAxisLabels; return ( -
+
{/* Label */}

{label}

{/* Plot container with border */} -
+
{/* Harvested Section (Log Scale) - Left 20% (only shown if there are harvested plots) */} {hasHarvestedPlots && ( diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 26a63eec2..7d02866d7 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -3,11 +3,13 @@ import PintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import { Col } from "@/components/Container"; import FrameAnimator from "@/components/LoadingSpinner"; +import PodLineGraph from "@/components/PodLineGraph"; import ReadMoreAccordion from "@/components/ReadMoreAccordion"; import ScatterChart from "@/components/charts/ScatterChart"; import { Card } from "@/components/ui/Card"; import { Separator } from "@/components/ui/Separator"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; +import useNavHeight from "@/hooks/display/useNavHeight"; import { useAllMarket } from "@/state/market/useAllMarket"; import { useHarvestableIndex, usePodLine } from "@/state/useFieldData"; import { trackSimpleEvent } from "@/utils/analytics"; @@ -161,6 +163,7 @@ export function Market() { const podLine = usePodLine(); const podLineAsNumber = podLine.toNumber() / MILLION; const harvestableIndex = useHarvestableIndex(); + const navHeight = useNavHeight(); const scatterChartData: MarketScatterChartData[] = useMemo( () => shapeScatterChartData(data || [], harvestableIndex), @@ -363,6 +366,9 @@ export function Market() { toolTipOptions={toolTipOptions as TooltipOptions} />
+
+ +
{TABLE_SLUGS.map((s, idx) => (

}

-
+
From f26c340a74b4e911afba3b7a99b78c204f1ee1e0 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 10 Nov 2025 02:49:29 +0300 Subject: [PATCH 40/54] Add pagination to Market Table --- src/components/MarketPaginationControls.tsx | 79 +++++++++++++++++++++ src/pages/market/MarketActivityTable.tsx | 34 +++------ src/pages/market/PodListingsTable.tsx | 32 +++------ src/pages/market/PodOrdersTable.tsx | 32 +++------ 4 files changed, 107 insertions(+), 70 deletions(-) create mode 100644 src/components/MarketPaginationControls.tsx diff --git a/src/components/MarketPaginationControls.tsx b/src/components/MarketPaginationControls.tsx new file mode 100644 index 000000000..5bec080f8 --- /dev/null +++ b/src/components/MarketPaginationControls.tsx @@ -0,0 +1,79 @@ +import { Button } from "@/components/ui/Button"; +import { ChevronLeftIcon, ChevronRightIcon } from "@radix-ui/react-icons"; + +interface MarketPaginationControlsProps { + currentPage: number; + totalPages: number; + onPageChange: (page: number) => void; + totalItems: number; + itemsPerPage: number; +} + +export function MarketPaginationControls({ + currentPage, + totalPages, + onPageChange, + totalItems, + itemsPerPage, +}: MarketPaginationControlsProps) { + if (totalPages <= 1) return null; + + const startItem = (currentPage - 1) * itemsPerPage + 1; + const endItem = Math.min(currentPage * itemsPerPage, totalItems); + + return ( +
+
+ Showing {startItem}-{endItem} of {totalItems} items +
+
+ +
+ {Array.from({ length: Math.min(totalPages, 5) }, (_, i) => { + let pageNum: number; + if (totalPages <= 5) { + pageNum = i + 1; + } else if (currentPage <= 3) { + pageNum = i + 1; + } else if (currentPage >= totalPages - 2) { + pageNum = totalPages - 4 + i; + } else { + pageNum = currentPage - 2 + i; + } + + return ( + + ); + })} +
+ +
+
+ ); +} diff --git a/src/pages/market/MarketActivityTable.tsx b/src/pages/market/MarketActivityTable.tsx index fc191f05e..57f16fdda 100644 --- a/src/pages/market/MarketActivityTable.tsx +++ b/src/pages/market/MarketActivityTable.tsx @@ -2,8 +2,8 @@ import podIcon from "@/assets/protocol/Pod.png"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import FrameAnimator from "@/components/LoadingSpinner"; -import { Button } from "@/components/ui/Button"; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/Card"; +import { MarketPaginationControls } from "@/components/MarketPaginationControls"; +import { Card, CardContent, CardHeader } from "@/components/ui/Card"; import IconImage from "@/components/ui/IconImage"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/Table"; import { PODS } from "@/constants/internalTokens"; @@ -25,7 +25,7 @@ export function MarketActivityTable({ marketData, titleText, farmer }: MarketAct const harvestableIndex = useHarvestableIndex(); const { data, isLoaded, isFetching } = marketData; - const rowsPerPage = 5000; + const rowsPerPage = 12; const totalRows = data?.length || 0; const totalPages = Math.ceil(totalRows / rowsPerPage); const [currentPage, setCurrentPage] = useState(1); @@ -237,27 +237,13 @@ export function MarketActivityTable({ marketData, titleText, farmer }: MarketAct - {totalPages > 1 && ( -
- -
{`${currentPage} of ${totalPages}`}
- -
- )} + )} diff --git a/src/pages/market/PodListingsTable.tsx b/src/pages/market/PodListingsTable.tsx index d36fb1d22..35d750e2f 100644 --- a/src/pages/market/PodListingsTable.tsx +++ b/src/pages/market/PodListingsTable.tsx @@ -2,7 +2,7 @@ import podIcon from "@/assets/protocol/Pod.png"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import FrameAnimator from "@/components/LoadingSpinner"; -import { Button } from "@/components/ui/Button"; +import { MarketPaginationControls } from "@/components/MarketPaginationControls"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/Card"; import IconImage from "@/components/ui/IconImage"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/Table"; @@ -22,7 +22,7 @@ export function PodListingsTable() { const podListings = podListingsQuery.data?.podListings; const harvestableIndex = useHarvestableIndex(); - const rowsPerPage = 5000; + const rowsPerPage = 12; const totalRows = podListings?.length || 0; const totalPages = Math.ceil(totalRows / rowsPerPage); const [currentPage, setCurrentPage] = useState(1); @@ -137,27 +137,13 @@ export function PodListingsTable() { - {totalPages > 1 && ( -
- -
{`${currentPage} of ${totalPages}`}
- -
- )} + )} diff --git a/src/pages/market/PodOrdersTable.tsx b/src/pages/market/PodOrdersTable.tsx index fb60e64b3..8022c7370 100644 --- a/src/pages/market/PodOrdersTable.tsx +++ b/src/pages/market/PodOrdersTable.tsx @@ -2,7 +2,7 @@ import podIcon from "@/assets/protocol/Pod.png"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import FrameAnimator from "@/components/LoadingSpinner"; -import { Button } from "@/components/ui/Button"; +import { MarketPaginationControls } from "@/components/MarketPaginationControls"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/Card"; import IconImage from "@/components/ui/IconImage"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/Table"; @@ -32,7 +32,7 @@ export function PodOrdersTable() { } } - const rowsPerPage = 5000; + const rowsPerPage = 12; const totalRows = filteredOrders?.length || 0; const totalPages = Math.ceil(totalRows / rowsPerPage); const [currentPage, setCurrentPage] = useState(1); @@ -141,27 +141,13 @@ export function PodOrdersTable() { - {totalPages > 1 && ( -
- -
{`${currentPage} of ${totalPages}`}
- -
- )} + )} From d87a4f0f616b6b1e3d3091b72574777653c4167c Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 10 Nov 2025 19:54:17 +0300 Subject: [PATCH 41/54] Add slider to ComboInputField and implement optional marks --- src/components/ComboInputField.tsx | 123 +++++++++++++++++++++++ src/components/ui/Slider.tsx | 52 +++++++++- src/pages/market/actions/CreateOrder.tsx | 2 + src/pages/market/actions/FillListing.tsx | 4 +- 4 files changed, 177 insertions(+), 4 deletions(-) diff --git a/src/components/ComboInputField.tsx b/src/components/ComboInputField.tsx index 075c55d88..9a245ea0a 100644 --- a/src/components/ComboInputField.tsx +++ b/src/components/ComboInputField.tsx @@ -28,10 +28,32 @@ import PlotSelect from "./PlotSelect"; import TextSkeleton from "./TextSkeleton"; import TokenSelectWithBalances, { TransformTokenLabelsFunction } from "./TokenSelectWithBalances"; import { Button } from "./ui/Button"; +import { Input } from "./ui/Input"; import { Skeleton } from "./ui/Skeleton"; +import { Slider } from "./ui/Slider"; const ETH_GAS_RESERVE = TokenValue.fromHuman("0.0003333333333", 18); // Reserve $1 of gas if eth is $3k +/** + * Convert slider value (0-100) to TokenValue + */ +const sliderToTokenValue = (sliderValue: number, maxAmount: TokenValue): TokenValue => { + const percentage = sliderValue / 100; + return maxAmount.mul(percentage); +}; + +/** + * Convert TokenValue to slider value (0-100) + */ +const tokenValueToSlider = (tokenValue: TokenValue, maxAmount: TokenValue): number => { + if (maxAmount.eq(0)) return 0; + return tokenValue.div(maxAmount).mul(100).toNumber(); +}; + +const TextAdornment = ({ text, className }: { text: string; className?: string }) => { + return
{text}
; +}; + export interface ComboInputProps extends InputHTMLAttributes { // Token mode props setToken?: Dispatch> | ((token: Token) => void); @@ -75,6 +97,10 @@ export interface ComboInputProps extends InputHTMLAttributes { // Token select props transformTokenLabels?: TransformTokenLabelsFunction; + + // Slider props + enableSlider?: boolean; + sliderMarkers?: number[]; } function ComboInputField({ @@ -112,6 +138,8 @@ function ComboInputField({ selectKey, transformTokenLabels, placeholder, + enableSlider, + sliderMarkers, }: ComboInputProps) { const tokenData = useTokenData(); const { balances } = useFarmerBalances(); @@ -270,6 +298,18 @@ function ComboInputField({ [connectedAccount, setError], ); + /** + * Reset amount when token changes + */ + useEffect(() => { + setInternalAmount(TokenValue.ZERO); + setDisplayValue("0"); + if (setAmount) { + setAmount("0"); + lastInternalAmountRef.current = "0"; + } + }, [selectedToken, setAmount]); + /** * Clamp the internal amount to the max amount * - ONLY when the selected token changes @@ -436,6 +476,58 @@ function ComboInputField({ return sortedPlots.map((plot) => truncateHex(plot.idHex)).join(", "); }, [selectedPlots]); + // Calculate slider value from internal amount + const sliderValue = useMemo(() => { + if (!enableSlider || maxAmount.eq(0)) return 0; + return tokenValueToSlider(internalAmount, maxAmount); + }, [enableSlider, internalAmount, maxAmount]); + + // Handle slider value changes + const handleSliderChange = useCallback( + (values: number[]) => { + if (disableInput || !enableSlider) return; + + const sliderVal = values[0] ?? 0; + const tokenVal = sliderToTokenValue(sliderVal, maxAmount); + + setIsUserInput(true); + setInternalAmount(tokenVal); + setDisplayValue(tokenVal.toHuman()); + handleSetError(tokenVal.gt(maxAmount)); + }, + [disableInput, enableSlider, maxAmount, handleSetError], + ); + + // Handle percentage input changes + const handlePercentageChange = useCallback( + (value: string) => { + if (disableInput || !enableSlider) return; + + // Allow empty string or valid number input + if (value === "") { + const tokenVal = TokenValue.ZERO; + setIsUserInput(true); + setInternalAmount(tokenVal); + setDisplayValue(tokenVal.toHuman()); + return; + } + + // Sanitize and validate percentage input (0-100) + const numValue = parseFloat(value); + if (Number.isNaN(numValue)) return; + + // Clamp between 0 and 100 + const clampedPct = Math.max(0, Math.min(100, numValue)); + const tokenVal = sliderToTokenValue(clampedPct, maxAmount); + + setIsUserInput(true); + setInternalAmount(tokenVal); + setDisplayValue(tokenVal.toHuman()); + handleSetError(tokenVal.gt(maxAmount)); + }, + [disableInput, enableSlider, maxAmount, handleSetError], + ); + return ( <>
)} + {enableSlider && ( +
+
+
+ +
+
+ handlePercentageChange(e.target.value)} + onFocus={(e) => e.target.select()} + placeholder={formatter.noDec(sliderValue)} + outlined + containerClassName="w-[6rem]" + disabled={disableInput || maxAmount.eq(0)} + endIcon={} + /> +
+
+
+ )}
diff --git a/src/components/ui/Slider.tsx b/src/components/ui/Slider.tsx index 8b3a54f07..55a9c6757 100644 --- a/src/components/ui/Slider.tsx +++ b/src/components/ui/Slider.tsx @@ -5,20 +5,66 @@ import { cn } from "@/utils/utils"; export interface ISliderProps extends React.ComponentPropsWithoutRef { numThumbs?: number; + markers?: number[]; } const Slider = React.forwardRef, ISliderProps>( - ({ className, numThumbs = 1, ...props }, ref) => { + ({ className, numThumbs = 1, markers = [], ...props }, ref) => { const thumbs = React.useMemo(() => Array.from({ length: numThumbs }, (_, i) => i), [numThumbs]); + // Calculate marker position as percentage + const calculateMarkerPosition = React.useCallback( + (markerValue: number): number => { + const min = props.min ?? 0; + const max = props.max ?? 100; + if (max === min) return 0; + return ((markerValue - min) / (max - min)) * 100; + }, + [props.min, props.max], + ); + + // Filter markers to only include values within min-max range + const validMarkers = React.useMemo(() => { + const min = props.min ?? 0; + const max = props.max ?? 100; + return markers.filter((marker) => marker >= min && marker <= max); + }, [markers, props.min, props.max]); + + // Get current slider value + const currentValue = React.useMemo(() => { + const values = props.value ?? props.defaultValue; + if (Array.isArray(values)) { + return values[0] ?? props.min ?? 0; + } + return values ?? props.min ?? 0; + }, [props.value, props.defaultValue, props.min]); + return ( - - + + + {validMarkers.map((marker, index) => { + const position = calculateMarkerPosition(marker); + const isAboveValue = marker > currentValue; + return ( +
+ ); + })} {thumbs.map((idx) => ( {shouldSwap && amountInTV.gt(0) && ( {!isUsingMain && amountInTV.gt(0) && ( Date: Mon, 10 Nov 2025 20:01:09 +0300 Subject: [PATCH 42/54] Fix slider styling --- src/components/ui/Slider.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/components/ui/Slider.tsx b/src/components/ui/Slider.tsx index 55a9c6757..c78f5f961 100644 --- a/src/components/ui/Slider.tsx +++ b/src/components/ui/Slider.tsx @@ -53,14 +53,12 @@ const Slider = React.forwardRef, I return (
); From c6f3f902903697b1beb18f75c1c2226b7c51a4ea Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Wed, 12 Nov 2025 20:28:03 +0300 Subject: [PATCH 43/54] Select plot group from Market --- src/constants/analytics-events.ts | 1 + src/pages/Market.tsx | 20 ++++++++- src/pages/market/actions/CreateListing.tsx | 52 +++++++++++++++++++++- 3 files changed, 70 insertions(+), 3 deletions(-) diff --git a/src/constants/analytics-events.ts b/src/constants/analytics-events.ts index 9f04453c8..6bb05dce8 100644 --- a/src/constants/analytics-events.ts +++ b/src/constants/analytics-events.ts @@ -216,6 +216,7 @@ const MARKET_EVENTS = { // Pod Listing Events POD_LIST_CREATE: "market_pod_list_create", LISTING_PLOT_SELECTED: "market_listing_plot_selected", + LISTING_AUTO_SELECTED: "market_listing_auto_selected", LISTING_PRICE_INPUT: "market_listing_price_input", LISTING_AMOUNT_INPUT: "market_listing_amount_input", POD_LIST_FILL: "market_pod_list_fill", diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 7d02866d7..b1edb3669 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -319,6 +319,24 @@ export function Market() { [scatterChartData, mode, navigate], ); + const handleMarketPodLineGraphSelect = useCallback( + (plotIndices: string[]) => { + if (plotIndices.length === 0) return; + + // Track analytics + trackSimpleEvent(ANALYTICS_EVENTS.MARKET.LISTING_PLOT_SELECTED, { + plot_count: plotIndices.length, + source: "market_page", + }); + + // Navigate to CreateListing with plot indices (not full Plot objects to avoid serialization issues) + navigate("/market/pods/sell/create", { + state: { selectedPlotIndices: plotIndices }, + }); + }, + [navigate], + ); + const viewMode = mode; return ( @@ -367,7 +385,7 @@ export function Market() { />
- +
{TABLE_SLUGS.map((s, idx) => ( diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 17da1d309..560fee83a 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -23,8 +23,8 @@ import { FarmToMode, Plot } from "@/utils/types"; import { cn } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; import { motion } from "framer-motion"; -import { useCallback, useMemo, useState } from "react"; -import { useNavigate } from "react-router-dom"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useLocation, useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; @@ -224,6 +224,54 @@ export default function CreateListing() { [plot.length, sortPlotsByIndex], ); + // Auto-select plots from location state (from Market page PodLineGraph) + const location = useLocation(); + const lastProcessedIndices = useRef(null); + + useEffect(() => { + const selectedPlotIndices = location.state?.selectedPlotIndices; + + // Type guard and validation + if (!selectedPlotIndices || !Array.isArray(selectedPlotIndices) || selectedPlotIndices.length === 0) { + return; + } + + // Create a unique key from the indices to detect if this is a new selection + // Use slice() to avoid mutating the original array + const indicesKey = [...selectedPlotIndices].sort().join(","); + + // Skip if we've already processed this exact selection + if (lastProcessedIndices.current === indicesKey) { + return; + } + + // Find matching plots from farmer's field using string comparison + const validPlots = farmerField.plots.filter((p) => selectedPlotIndices.includes(p.index.toHuman())); + + if (validPlots.length > 0) { + // Mark this selection as processed + lastProcessedIndices.current = indicesKey; + + // Track auto-selection + trackSimpleEvent(ANALYTICS_EVENTS.MARKET.LISTING_AUTO_SELECTED, { + plot_count: validPlots.length, + source: "market_podline_graph", + }); + + // Sort and set plots directly to avoid re-triggering handlePlotSelection + const sortedPlots = sortPlotsByIndex(validPlots); + setPlot(sortedPlots); + + // Set range and amount + const totalPods = sortedPlots.reduce((sum, p) => sum + p.pods.toNumber(), 0); + setPodRange([0, totalPods]); + setAmount(totalPods); + + // Clean up location state to prevent re-selection on re-mount + window.history.replaceState({}, document.title); + } + }, [location.state, farmerField.plots, sortPlotsByIndex]); + // Pod range slider handler (two thumbs) const handlePodRangeChange = useCallback((value: number[]) => { const [min, max] = value; From 412fd0eff858fb100ddd095949ba3b6b8398bd6b Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 13 Nov 2025 02:31:30 +0300 Subject: [PATCH 44/54] Change place in line multi slider to slider on FillListing --- src/pages/market/actions/FillListing.tsx | 313 +++++++++++------------ 1 file changed, 151 insertions(+), 162 deletions(-) diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index d7d6586c0..ec83eb1db 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -10,7 +10,7 @@ import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Button } from "@/components/ui/Button"; import { Input } from "@/components/ui/Input"; import { Separator } from "@/components/ui/Separator"; -import { MultiSlider, Slider } from "@/components/ui/Slider"; +import { Slider } from "@/components/ui/Slider"; import { ANALYTICS_EVENTS } from "@/constants/analytics-events"; import { PODS } from "@/constants/internalTokens"; import fillPodListing from "@/encoders/fillPodListing"; @@ -53,7 +53,6 @@ const PRICE_PER_POD_CONFIG = { } as const; const PRICE_SLIDER_STEP = 0.001; -const MILLION = 1_000_000; const DEFAULT_PRICE_INPUT = "0.001"; const PLACE_MARGIN_PERCENT = 0.01; // 1% margin for place in line range @@ -127,15 +126,19 @@ export default function FillListing() { const [maxPricePerPod, setMaxPricePerPod] = useState(0); const [maxPricePerPodInput, setMaxPricePerPodInput] = useState(DEFAULT_PRICE_INPUT); - // Place in line range state + // Place in line state const podIndex = usePodIndex(); const maxPlace = Number.parseInt(podIndex.toHuman()) - Number.parseInt(harvestableIndex.toHuman()) || 0; - const [placeInLineRange, setPlaceInLineRange] = useState<[number, number]>([0, maxPlace]); + const [maxPlaceInLine, setMaxPlaceInLine] = useState(undefined); + const [hasInitializedPlace, setHasInitializedPlace] = useState(false); - // Update place in line range when maxPlace changes + // Set maxPlaceInLine to maxPlace by default when maxPlace is available (only once on initial load) useEffect(() => { - setPlaceInLineRange((prev) => [prev[0], maxPlace]); - }, [maxPlace]); + if (maxPlace > 0 && !hasInitializedPlace && maxPlaceInLine === undefined) { + setMaxPlaceInLine(maxPlace); + setHasInitializedPlace(true); + } + }, [maxPlace, hasInitializedPlace, maxPlaceInLine]); const isUsingMain = tokensEqual(tokenIn, mainToken); @@ -183,18 +186,18 @@ export default function FillListing() { const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); const formattedPrice = formatPricePerPod(listingPrice); setMaxPricePerPod(formattedPrice); - setMaxPricePerPodInput(formattedPrice.toFixed(6)); + setMaxPricePerPodInput(formattedPrice.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); // Calculate listing's place in line const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); const placeInLine = listingIndex.sub(harvestableIndex).toNumber(); - // Set place in line range to include this listing with a small margin + // Set max place in line to include this listing with a small margin // Clamp to valid range [0, maxPlace] const margin = Math.max(1, Math.floor(maxPlace * PLACE_MARGIN_PERCENT)); - const minPlace = Math.max(0, Math.floor(placeInLine - margin)); const maxPlaceValue = Math.min(maxPlace, Math.ceil(placeInLine + margin)); - setPlaceInLineRange([minPlace, maxPlaceValue]); + setMaxPlaceInLine(maxPlaceValue); + setHasInitializedPlace(true); // Mark as initialized to prevent default value override }, [listingId, allListings, maxPlace, mainToken.decimals, harvestableIndex]); // Token selection handler with tracking @@ -214,7 +217,7 @@ export default function FillListing() { const handlePriceSliderChange = useCallback((value: number[]) => { const formatted = formatPricePerPod(value[0]); setMaxPricePerPod(formatted); - setMaxPricePerPodInput(formatted.toFixed(6)); + setMaxPricePerPodInput(formatted.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); }, []); // Price per pod input handlers @@ -248,37 +251,24 @@ export default function FillListing() { } }, [maxPricePerPodInput]); - // Place in line range handler - const handlePlaceInLineRangeChange = useCallback((value: number[]) => { - const [min, max] = value; - setPlaceInLineRange([Math.floor(min), Math.floor(max)]); + // Max place in line slider handler + const handleMaxPlaceSliderChange = useCallback((value: number[]) => { + const newValue = Math.floor(value[0]); + setMaxPlaceInLine(newValue > 0 ? newValue : undefined); }, []); - // Place in line input handlers - const handleMinPlaceInputChange = useCallback( - (e: React.ChangeEvent) => { - const cleanValue = e.target.value.replace(/,/g, ""); - const value = Number.parseInt(cleanValue); - if (!Number.isNaN(value) && value >= 0 && value <= maxPlace) { - setPlaceInLineRange([value, placeInLineRange[1]]); - } else if (cleanValue === "") { - setPlaceInLineRange([0, placeInLineRange[1]]); - } - }, - [maxPlace, placeInLineRange], - ); - + // Max place in line input handler const handleMaxPlaceInputChange = useCallback( (e: React.ChangeEvent) => { const cleanValue = e.target.value.replace(/,/g, ""); const value = Number.parseInt(cleanValue); - if (!Number.isNaN(value) && value >= 0 && value <= maxPlace) { - setPlaceInLineRange([placeInLineRange[0], value]); + if (!Number.isNaN(value) && value > 0 && value <= maxPlace) { + setMaxPlaceInLine(value); } else if (cleanValue === "") { - setPlaceInLineRange([placeInLineRange[0], maxPlace]); + setMaxPlaceInLine(undefined); } }, - [maxPlace, placeInLineRange], + [maxPlace], ); /** @@ -300,36 +290,39 @@ export default function FillListing() { idHex: listing.id, })); - // Calculate place in line boundaries for filtering - const minPlaceIndex = harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[0], PODS.decimals)); - const maxPlaceIndex = harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[1], PODS.decimals)); + // Calculate place in line boundary for filtering + const maxPlaceIndex = maxPlaceInLine + ? harvestableIndex.add(TokenValue.fromHuman(maxPlaceInLine.toString(), PODS.decimals)) + : undefined; // Determine eligible listings (shown as green on graph) - // When maxPricePerPod is 0, no listings are eligible (all show as orange) - // When maxPricePerPod > 0, filter by both price and place in line + // When maxPricePerPod is 0 OR maxPlaceInLine is not set, no listings are eligible (all show as orange) + // When both maxPricePerPod > 0 AND maxPlaceInLine is set, filter by both price and place in line const eligible: string[] = - maxPricePerPod > 0 + maxPricePerPod > 0 && maxPlaceIndex ? allListings.podListings .filter((listing) => { const listingPrice = TokenValue.fromBlockchain(listing.pricePerPod, mainToken.decimals).toNumber(); const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); // Listing must match both criteria to be eligible - return ( - listingPrice <= maxPricePerPod && listingIndex.gte(minPlaceIndex) && listingIndex.lte(maxPlaceIndex) - ); + const matchesPrice = listingPrice <= maxPricePerPod; + const matchesPlace = listingIndex.lte(maxPlaceIndex); + return matchesPrice && matchesPlace; }) .map((listing) => listing.id) : []; // Calculate range overlay for visual feedback on graph - const overlay = { - start: harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[0], PODS.decimals)), - end: harvestableIndex.add(TokenValue.fromHuman(placeInLineRange[1], PODS.decimals)), - }; + const overlay = maxPlaceInLine + ? { + start: harvestableIndex, + end: harvestableIndex.add(TokenValue.fromHuman(maxPlaceInLine.toString(), PODS.decimals)), + } + : undefined; return { listingPlots: plots, eligibleListingIds: eligible, rangeOverlay: overlay }; - }, [allListings, maxPricePerPod, placeInLineRange, mainToken.decimals, harvestableIndex]); + }, [allListings, maxPricePerPod, maxPlaceInLine, mainToken.decimals, harvestableIndex]); // Calculate open available pods count (eligible listings only - already filtered by price AND place) const openAvailablePods = useMemo(() => { @@ -679,135 +672,131 @@ export default function FillListing() { )}
- {/* Place in Line Range Selector */} - {maxPlace > 0 && ( -
-

At a Place in Line between:

- {/* Slider row */} -
-

0

- -

- {formatter.noDec(maxPlace)} -

-
- {/* Input row */} -
- e.target.select()} - placeholder="0" - outlined - containerClassName="flex-1" - className="" - /> - — + {/* Place in Line Slider */} +
+

I want to fill listings with a Place in Line up to:

+ {maxPlace === 0 ? ( +

No Pods in Line currently available to fill.

+ ) : ( +
+
+

0

+ {maxPlace > 0 && ( + + )} +

{formatter.noDec(maxPlace)}

+
e.target.select()} placeholder={formatter.noDec(maxPlace)} outlined - containerClassName="flex-1" + containerClassName="w-[108px]" className="" + disabled={maxPlace === 0} />
-
- )} - - {/* Open Available Pods Display */} -
-

- Open available pods: {formatter.noDec(openAvailablePods)} Pods -

+ )}
- {/* Fill Using Section - Only show if there are eligible listings */} - {eligibleListingIds.length > 0 && ( + {/* Show these sections only when maxPlaceInLine is greater than 0 */} + {maxPlaceInLine !== undefined && maxPlaceInLine > 0 && (
-
-
-

Fill Using

- -
- - {!isUsingMain && amountInTV.gt(0) && ( - - )} - {slippageWarning} + {/* Open Available Pods Display */} +
+

+ Open available pods: {formatter.noDec(openAvailablePods)} Pods +

-
- - {disabled && Number(amountIn) > 0 && ( -
- + + {/* Fill Using Section - Only show if there are eligible listings */} + {eligibleListingIds.length > 0 && ( + <> +
+
+

Fill Using

+ +
+ + {!isUsingMain && amountInTV.gt(0) && ( + + )} + {slippageWarning}
- )} - {!disabled && eligibleSummary && mainTokensIn && ( - - )} -
- - -
-
+
+ + {disabled && Number(amountIn) > 0 && ( +
+ +
+ )} + {!disabled && eligibleSummary && mainTokensIn && ( + + )} +
+ + +
+
+ + )}
)} From aeacec2200a90c203f8a74d22fd8d34704672b31 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 13 Nov 2025 21:17:22 +0300 Subject: [PATCH 45/54] Add overlay to MarketChart --- src/components/MarketChartOverlay.tsx | 278 ++++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 src/components/MarketChartOverlay.tsx diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx new file mode 100644 index 000000000..1f6b2a0c9 --- /dev/null +++ b/src/components/MarketChartOverlay.tsx @@ -0,0 +1,278 @@ +import { TokenValue } from "@/classes/TokenValue"; +import { Chart } from "chart.js"; +import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; + +const MILLION = 1_000_000; + +const OVERLAY_COLORS = { + shadedRegion: "rgba(64, 176, 166, 0.15)", // Teal with 15% opacity + border: "rgba(64, 176, 166, 0.8)", // Teal with 80% opacity +}; + +interface MarketChartOverlayProps { + pricePerPod: number | null; + maxPlaceInLine: number | null; + chartRef: React.RefObject; + visible: boolean; + harvestableIndex: TokenValue; +} + +type ChartDimensions = { + left: number; + top: number; + width: number; + height: number; + bottom: number; + right: number; +}; + +const MarketChartOverlay = React.memo( + ({ pricePerPod, maxPlaceInLine, chartRef, visible, harvestableIndex }) => { + const [dimensions, setDimensions] = useState(null); + const containerRef = useRef(null); + + // Calculate pixel position from data value using chart scales + const calculatePixelPosition = useCallback((dataValue: number, axis: "x" | "y"): number | null => { + // Handle null chart ref gracefully + if (!chartRef.current) return null; + + // Handle uninitialized chart scales + const scale = chartRef.current.scales?.[axis]; + if (!scale) return null; + + // Verify scale has required methods and properties + if (typeof scale.getPixelForValue !== 'function') return null; + if (scale.min === undefined || scale.max === undefined) return null; + + // Clamp data value to scale bounds to prevent out-of-range rendering + const clampedValue = Math.max(scale.min, Math.min(dataValue, scale.max)); + + try { + return scale.getPixelForValue(clampedValue); + } catch (error) { + // Handle any errors during pixel calculation + console.warn(`Error calculating pixel position for ${axis}-axis:`, error); + return null; + } + }, [chartRef]); + + // Get chart dimensions from chart instance + const getChartDimensions = useCallback((): ChartDimensions | null => { + // Handle null chart ref gracefully + if (!chartRef.current) return null; + + // Handle uninitialized chart area + const chartArea = chartRef.current.chartArea; + if (!chartArea) return null; + + // Validate all required properties exist + if ( + typeof chartArea.left !== 'number' || + typeof chartArea.top !== 'number' || + typeof chartArea.right !== 'number' || + typeof chartArea.bottom !== 'number' + ) { + return null; + } + + // Validate dimensions are positive and sensible + const width = chartArea.right - chartArea.left; + const height = chartArea.bottom - chartArea.top; + + if (width <= 0 || height <= 0) { + return null; + } + + return { + left: chartArea.left, + top: chartArea.top, + width, + height, + bottom: chartArea.bottom, + right: chartArea.right, + }; + }, [chartRef]); + + // Update dimensions when chart changes or resizes + useEffect(() => { + const updateDimensions = () => { + try { + const newDimensions = getChartDimensions(); + if (newDimensions) { + setDimensions(newDimensions); + } + } catch (error) { + // Handle errors during dimension calculation + console.warn('Error updating chart dimensions:', error); + } + }; + + // Initial dimensions with slight delay to ensure chart is ready + const initialTimeout = setTimeout(updateDimensions, 0); + + // Set up ResizeObserver with debouncing for parent element + let resizeTimeoutId: NodeJS.Timeout; + let resizeObserver: ResizeObserver | null = null; + + try { + resizeObserver = new ResizeObserver(() => { + clearTimeout(resizeTimeoutId); + resizeTimeoutId = setTimeout(updateDimensions, 100); + }); + + if (containerRef.current?.parentElement) { + resizeObserver.observe(containerRef.current.parentElement); + } + } catch (error) { + console.warn('Error setting up ResizeObserver:', error); + } + + // Also listen to window resize events + let windowResizeTimeoutId: NodeJS.Timeout; + const handleWindowResize = () => { + clearTimeout(windowResizeTimeoutId); + windowResizeTimeoutId = setTimeout(updateDimensions, 100); + }; + + window.addEventListener("resize", handleWindowResize); + + return () => { + clearTimeout(initialTimeout); + clearTimeout(resizeTimeoutId); + clearTimeout(windowResizeTimeoutId); + if (resizeObserver) { + resizeObserver.disconnect(); + } + window.removeEventListener("resize", handleWindowResize); + }; + }, [getChartDimensions]); + + // Calculate pixel coordinates for overlay elements + const overlayCoordinates = useMemo(() => { + // Early return for missing required data + if (!visible || !pricePerPod || !maxPlaceInLine || !dimensions) { + return null; + } + + // Validate input values are finite numbers + if (!Number.isFinite(pricePerPod) || !Number.isFinite(maxPlaceInLine)) { + return null; + } + + // Handle null chart ref gracefully + if (!chartRef.current) { + return null; + } + + // Check if chart has valid scales + const xScale = chartRef.current.scales?.x; + const yScale = chartRef.current.scales?.y; + + if (!xScale || !yScale) { + return null; + } + + // Handle uninitialized chart scales + if (xScale.max === undefined || xScale.max === 0 || yScale.max === undefined) { + return null; + } + + // Convert maxPlaceInLine to chart x-axis value (millions) + const placeInLineChartX = maxPlaceInLine / MILLION; + + // Validate converted value is reasonable + if (!Number.isFinite(placeInLineChartX) || placeInLineChartX < 0) { + return null; + } + + // Get pixel positions (already clamped in calculatePixelPosition) + const priceY = calculatePixelPosition(pricePerPod, "y"); + const placeX = calculatePixelPosition(placeInLineChartX, "x"); + + if (priceY === null || placeX === null) { + return null; + } + + // Additional clamping to chart boundaries to prevent overflow + const clampedPlaceX = Math.max(dimensions.left, Math.min(placeX, dimensions.right)); + const clampedPriceY = Math.max(dimensions.top, Math.min(priceY, dimensions.bottom)); + + // Validate final coordinates are within bounds + if ( + !Number.isFinite(clampedPlaceX) || + !Number.isFinite(clampedPriceY) || + clampedPlaceX < dimensions.left || + clampedPlaceX > dimensions.right || + clampedPriceY < dimensions.top || + clampedPriceY > dimensions.bottom + ) { + return null; + } + + return { + priceY: clampedPriceY, + placeX: clampedPlaceX, + }; + }, [visible, pricePerPod, maxPlaceInLine, dimensions, calculatePixelPosition, chartRef]); + + // Don't render if not visible or no valid coordinates + if (!visible || !overlayCoordinates || !dimensions) { + return null; + } + + const { priceY, placeX } = overlayCoordinates; + + // Additional validation: ensure coordinates are within chart bounds + // This is a safety check since coordinates should already be clamped + if ( + !Number.isFinite(placeX) || + !Number.isFinite(priceY) || + placeX < dimensions.left || + placeX > dimensions.right || + priceY < dimensions.top || + priceY > dimensions.bottom + ) { + return null; + } + + // Calculate dimensions for the shaded region + const rectWidth = placeX - dimensions.left; + const rectHeight = dimensions.bottom - priceY; + + // Don't render if dimensions are invalid or too small + if (!Number.isFinite(rectWidth) || !Number.isFinite(rectHeight) || rectWidth <= 0 || rectHeight <= 0) { + return null; + } + + return ( +
+ + {/* Shaded region - from top-left to the intersection point */} + + +
+ ); + }, +); + +MarketChartOverlay.displayName = "MarketChartOverlay"; + +export default MarketChartOverlay; From 8ff7eda7c639aa4792603f956d6c8284c898f312 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 13 Nov 2025 22:43:52 +0300 Subject: [PATCH 46/54] Listing overlay --- src/components/MarketChartOverlay.tsx | 509 +++++++++++++-------- src/components/charts/ScatterChart.tsx | 68 +-- src/pages/Market.tsx | 147 +++--- src/pages/market/actions/CreateListing.tsx | 48 +- src/pages/market/actions/CreateOrder.tsx | 43 +- src/pages/market/actions/FillListing.tsx | 43 +- 6 files changed, 586 insertions(+), 272 deletions(-) diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx index 1f6b2a0c9..96edb8480 100644 --- a/src/components/MarketChartOverlay.tsx +++ b/src/components/MarketChartOverlay.tsx @@ -2,16 +2,53 @@ import { TokenValue } from "@/classes/TokenValue"; import { Chart } from "chart.js"; import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; +// Performance constants - hoisted outside component const MILLION = 1_000_000; - -const OVERLAY_COLORS = { +const RESIZE_DEBOUNCE_MS = 100; +const DIMENSION_UPDATE_DELAY_MS = 0; +const BOX_SIZE = 12; +const HALF_BOX_SIZE = 6; // Pre-calculated for performance +const BORDER_WIDTH = 1; + +// Frozen color constants for immutability and optimization +const BUY_OVERLAY_COLORS = Object.freeze({ shadedRegion: "rgba(64, 176, 166, 0.15)", // Teal with 15% opacity border: "rgba(64, 176, 166, 0.8)", // Teal with 80% opacity -}; +}); + +const SELL_OVERLAY_COLORS = Object.freeze({ + plotBorder: "#ED7A00", + plotFill: "#e0b57d", + lineColor: "black", +}); + +// Tailwind class strings for reuse +const BASE_OVERLAY_CLASSES = "absolute pointer-events-none"; +const TRANSITION_CLASSES = "transition-all duration-150 ease-out"; +const LINE_TRANSITION_CLASSES = "transition-[top,opacity] duration-150 ease-out"; + +// Overlay parameter types +export interface PlotOverlayData { + startIndex: TokenValue; // Absolute pod index + amount: TokenValue; // Number of pods in this plot +} + +interface BuyOverlayParams { + mode: "buy"; + pricePerPod: number; + maxPlaceInLine: number; +} + +interface SellOverlayParams { + mode: "sell"; + pricePerPod: number; + plots: PlotOverlayData[]; +} + +export type OverlayParams = BuyOverlayParams | SellOverlayParams | null; interface MarketChartOverlayProps { - pricePerPod: number | null; - maxPlaceInLine: number | null; + overlayParams: OverlayParams; chartRef: React.RefObject; visible: boolean; harvestableIndex: TokenValue; @@ -26,248 +63,350 @@ type ChartDimensions = { right: number; }; +interface PlotRectangle { + x: number; // Left edge pixel position + y: number; // Top edge pixel position (price line) + width: number; // Width in pixels (based on plot amount) + height: number; // Height in pixels (from price to bottom) +} + const MarketChartOverlay = React.memo( - ({ pricePerPod, maxPlaceInLine, chartRef, visible, harvestableIndex }) => { + ({ overlayParams, chartRef, visible, harvestableIndex }) => { const [dimensions, setDimensions] = useState(null); const containerRef = useRef(null); - // Calculate pixel position from data value using chart scales + // Optimized pixel position calculator with minimal validation overhead const calculatePixelPosition = useCallback((dataValue: number, axis: "x" | "y"): number | null => { - // Handle null chart ref gracefully - if (!chartRef.current) return null; + const chart = chartRef.current; + if (!chart?.scales) return null; - // Handle uninitialized chart scales - const scale = chartRef.current.scales?.[axis]; - if (!scale) return null; - - // Verify scale has required methods and properties - if (typeof scale.getPixelForValue !== 'function') return null; - if (scale.min === undefined || scale.max === undefined) return null; + const scale = chart.scales[axis]; + if (!scale?.getPixelForValue || scale.min === undefined || scale.max === undefined) { + return null; + } - // Clamp data value to scale bounds to prevent out-of-range rendering - const clampedValue = Math.max(scale.min, Math.min(dataValue, scale.max)); + // Fast clamp without Math.max/min for better performance + const clampedValue = dataValue < scale.min ? scale.min : dataValue > scale.max ? scale.max : dataValue; try { return scale.getPixelForValue(clampedValue); - } catch (error) { - // Handle any errors during pixel calculation - console.warn(`Error calculating pixel position for ${axis}-axis:`, error); + } catch { return null; } }, [chartRef]); - // Get chart dimensions from chart instance + // Optimized dimension calculator with minimal object creation const getChartDimensions = useCallback((): ChartDimensions | null => { - // Handle null chart ref gracefully - if (!chartRef.current) return null; - - // Handle uninitialized chart area - const chartArea = chartRef.current.chartArea; - if (!chartArea) return null; - - // Validate all required properties exist - if ( - typeof chartArea.left !== 'number' || - typeof chartArea.top !== 'number' || - typeof chartArea.right !== 'number' || - typeof chartArea.bottom !== 'number' - ) { - return null; - } + const chart = chartRef.current; + if (!chart?.chartArea) return null; - // Validate dimensions are positive and sensible - const width = chartArea.right - chartArea.left; - const height = chartArea.bottom - chartArea.top; + const { left, top, right, bottom } = chart.chartArea; - if (width <= 0 || height <= 0) { + // Fast type validation + if (typeof left !== 'number' || typeof top !== 'number' || + typeof right !== 'number' || typeof bottom !== 'number') { return null; } - return { - left: chartArea.left, - top: chartArea.top, - width, - height, - bottom: chartArea.bottom, - right: chartArea.right, - }; + const width = right - left; + const height = bottom - top; + + if (width <= 0 || height <= 0) return null; + + return { left, top, width, height, bottom, right }; }, [chartRef]); - // Update dimensions when chart changes or resizes + // Optimized resize handling with single debounced handler useEffect(() => { - const updateDimensions = () => { - try { + let timeoutId: NodeJS.Timeout; + let resizeObserver: ResizeObserver | null = null; + + const debouncedUpdate = () => { + clearTimeout(timeoutId); + timeoutId = setTimeout(() => { const newDimensions = getChartDimensions(); if (newDimensions) { setDimensions(newDimensions); } - } catch (error) { - // Handle errors during dimension calculation - console.warn('Error updating chart dimensions:', error); - } + }, RESIZE_DEBOUNCE_MS); }; - // Initial dimensions with slight delay to ensure chart is ready - const initialTimeout = setTimeout(updateDimensions, 0); - - // Set up ResizeObserver with debouncing for parent element - let resizeTimeoutId: NodeJS.Timeout; - let resizeObserver: ResizeObserver | null = null; - - try { - resizeObserver = new ResizeObserver(() => { - clearTimeout(resizeTimeoutId); - resizeTimeoutId = setTimeout(updateDimensions, 100); - }); - - if (containerRef.current?.parentElement) { - resizeObserver.observe(containerRef.current.parentElement); + // Initial update + const initialTimeout = setTimeout(() => { + const dimensions = getChartDimensions(); + if (dimensions) setDimensions(dimensions); + }, DIMENSION_UPDATE_DELAY_MS); + + // Single ResizeObserver for all resize events + if (typeof ResizeObserver !== 'undefined') { + resizeObserver = new ResizeObserver(debouncedUpdate); + const parent = containerRef.current?.parentElement; + if (parent) { + resizeObserver.observe(parent); } - } catch (error) { - console.warn('Error setting up ResizeObserver:', error); } - // Also listen to window resize events - let windowResizeTimeoutId: NodeJS.Timeout; - const handleWindowResize = () => { - clearTimeout(windowResizeTimeoutId); - windowResizeTimeoutId = setTimeout(updateDimensions, 100); - }; - - window.addEventListener("resize", handleWindowResize); + // Fallback window resize listener with passive flag for better performance + window.addEventListener("resize", debouncedUpdate, { passive: true }); return () => { clearTimeout(initialTimeout); - clearTimeout(resizeTimeoutId); - clearTimeout(windowResizeTimeoutId); - if (resizeObserver) { - resizeObserver.disconnect(); - } - window.removeEventListener("resize", handleWindowResize); + clearTimeout(timeoutId); + resizeObserver?.disconnect(); + window.removeEventListener("resize", debouncedUpdate); }; }, [getChartDimensions]); - // Calculate pixel coordinates for overlay elements - const overlayCoordinates = useMemo(() => { - // Early return for missing required data - if (!visible || !pricePerPod || !maxPlaceInLine || !dimensions) { - return null; - } + // Optimized buy overlay renderer with minimal validation + const renderBuyOverlay = useCallback( + (params: BuyOverlayParams) => { + const { pricePerPod, maxPlaceInLine } = params; + + // Fast early returns + if (!dimensions || !chartRef.current?.scales) return null; + + const { scales } = chartRef.current; + const { x: xScale, y: yScale } = scales; + + if (!xScale?.max || xScale.max === 0 || !yScale?.max) return null; + + // Optimized conversion and validation + const placeInLineChartX = maxPlaceInLine / MILLION; + if (placeInLineChartX < 0) return null; + + // Batch pixel position calculations + const priceY = calculatePixelPosition(pricePerPod, "y"); + const placeX = calculatePixelPosition(placeInLineChartX, "x"); + + if (priceY === null || placeX === null) return null; + + // Fast clamping with ternary operators + const { left, right, top, bottom } = dimensions; + const clampedPlaceX = placeX < left ? left : placeX > right ? right : placeX; + const clampedPriceY = priceY < top ? top : priceY > bottom ? bottom : priceY; + + // Calculate dimensions + const rectWidth = clampedPlaceX - left; + const rectHeight = bottom - clampedPriceY; + + // Single validation check + if (rectWidth <= 0 || rectHeight <= 0) return null; + + return ( + + + + ); + }, + [dimensions, calculatePixelPosition], + ); - // Validate input values are finite numbers - if (!Number.isFinite(pricePerPod) || !Number.isFinite(maxPlaceInLine)) { - return null; - } + // Highly optimized plot rectangle calculator + const calculatePlotRectangle = useCallback( + (plot: PlotOverlayData, pricePerPod: number): PlotRectangle | null => { + // Early returns for performance + if (!dimensions || !chartRef.current?.scales || !plot.startIndex || !plot.amount) { + return null; + } - // Handle null chart ref gracefully - if (!chartRef.current) { - return null; - } + const { scales } = chartRef.current; + const { x: xScale, y: yScale } = scales; + + if (!xScale?.max || !yScale?.max) return null; + + // Optimized place in line calculation - avoid intermediate TokenValue object + const placeInLineNum = plot.startIndex.toNumber() - harvestableIndex.toNumber(); + if (placeInLineNum < 0) return null; + + // Batch calculations for better performance + const startX = placeInLineNum / MILLION; + const endX = (placeInLineNum + plot.amount.toNumber()) / MILLION; + + // Fast validation + if (startX < 0 || endX <= startX) return null; + + // Batch pixel position calculations + const startPixelX = calculatePixelPosition(startX, "x"); + const endPixelX = calculatePixelPosition(endX, "x"); + const pricePixelY = calculatePixelPosition(pricePerPod, "y"); + + if (startPixelX === null || endPixelX === null || pricePixelY === null) { + return null; + } - // Check if chart has valid scales - const xScale = chartRef.current.scales?.x; - const yScale = chartRef.current.scales?.y; - - if (!xScale || !yScale) { - return null; - } + // Optimized clamping with ternary operators + const { left, right, top, bottom } = dimensions; + const clampedStartX = startPixelX < left ? left : startPixelX > right ? right : startPixelX; + const clampedEndX = endPixelX < left ? left : endPixelX > right ? right : endPixelX; + const clampedPriceY = pricePixelY < top ? top : pricePixelY > bottom ? bottom : pricePixelY; - // Handle uninitialized chart scales - if (xScale.max === undefined || xScale.max === 0 || yScale.max === undefined) { - return null; - } + const width = clampedEndX - clampedStartX; + const height = bottom - clampedPriceY; - // Convert maxPlaceInLine to chart x-axis value (millions) - const placeInLineChartX = maxPlaceInLine / MILLION; + // Single validation check + if (width <= 0 || height <= 0 || clampedStartX >= right || clampedEndX <= left) { + return null; + } - // Validate converted value is reasonable - if (!Number.isFinite(placeInLineChartX) || placeInLineChartX < 0) { - return null; - } + return { x: clampedStartX, y: clampedPriceY, width, height }; + }, + [dimensions, calculatePixelPosition, harvestableIndex], + ); - // Get pixel positions (already clamped in calculatePixelPosition) - const priceY = calculatePixelPosition(pricePerPod, "y"); - const placeX = calculatePixelPosition(placeInLineChartX, "x"); + // Highly optimized rectangle memoization with minimal object creation + const memoizedRectangles = useMemo(() => { + if (!overlayParams || overlayParams.mode !== "sell" || !dimensions) return null; - if (priceY === null || placeX === null) { - return null; - } + const { pricePerPod, plots } = overlayParams; - // Additional clamping to chart boundaries to prevent overflow - const clampedPlaceX = Math.max(dimensions.left, Math.min(placeX, dimensions.right)); - const clampedPriceY = Math.max(dimensions.top, Math.min(priceY, dimensions.bottom)); - - // Validate final coordinates are within bounds - if ( - !Number.isFinite(clampedPlaceX) || - !Number.isFinite(clampedPriceY) || - clampedPlaceX < dimensions.left || - clampedPlaceX > dimensions.right || - clampedPriceY < dimensions.top || - clampedPriceY > dimensions.bottom - ) { - return null; + // Fast validation + if (pricePerPod <= 0 || !plots?.length) return null; + + // Pre-allocate array for better performance + const rectangles: Array = []; + + // Use for loop for better performance than map/filter chain + for (let i = 0; i < plots.length; i++) { + const plot = plots[i]; + const rect = calculatePlotRectangle(plot, pricePerPod); + + if (rect) { + rectangles.push({ + x: rect.x, + y: rect.y, + width: rect.width, + height: rect.height, + plotKey: plot.startIndex.toHuman(), + plotIndex: i, + }); + } } - return { - priceY: clampedPriceY, - placeX: clampedPlaceX, - }; - }, [visible, pricePerPod, maxPlaceInLine, dimensions, calculatePixelPosition, chartRef]); + return rectangles.length > 0 ? rectangles : null; + }, [overlayParams, dimensions, calculatePlotRectangle]); + + // Highly optimized sell overlay renderer with pre-calculated values + const renderSellOverlay = useCallback( + (params: SellOverlayParams) => { + const { pricePerPod } = params; + + if (!dimensions || !memoizedRectangles) return null; + + // Calculate price line Y position + const pricePixelY = calculatePixelPosition(pricePerPod, "y"); + if (pricePixelY === null) return null; + + // Fast clamping + const { top, bottom, left } = dimensions; + const clampedPriceY = pricePixelY < top ? top : pricePixelY > bottom ? bottom : pricePixelY; + + // Pre-calculate common values to avoid repeated calculations + const lineWidth = dimensions.right - left; + const lineHeight = bottom - top; + const lastRectIndex = memoizedRectangles.length - 1; + + return ( + <> + {/* Horizontal price line - Tailwind + minimal inline styles */} +
+ + {/* Selection boxes - Tailwind + minimal inline styles */} + {memoizedRectangles.map((rect) => { + const centerX = rect.x + (rect.width >> 1); // Bit shift for division by 2 + const centerY = clampedPriceY; + + return ( +
+ ); + })} + + {/* Vertical lines - Tailwind + minimal inline styles */} + {memoizedRectangles.length > 0 && ( + <> +
+
+ + )} + + ); + }, + [dimensions, memoizedRectangles, calculatePixelPosition], + ); - // Don't render if not visible or no valid coordinates - if (!visible || !overlayCoordinates || !dimensions) { + // Don't render if not visible or no overlay params + if (!visible || !overlayParams || !dimensions) { return null; } - const { priceY, placeX } = overlayCoordinates; - - // Additional validation: ensure coordinates are within chart bounds - // This is a safety check since coordinates should already be clamped - if ( - !Number.isFinite(placeX) || - !Number.isFinite(priceY) || - placeX < dimensions.left || - placeX > dimensions.right || - priceY < dimensions.top || - priceY > dimensions.bottom - ) { - return null; + // Determine which overlay to render based on mode + let overlayContent: JSX.Element | null = null; + if (overlayParams.mode === "buy") { + overlayContent = renderBuyOverlay(overlayParams); + } else if (overlayParams.mode === "sell") { + overlayContent = renderSellOverlay(overlayParams); } - // Calculate dimensions for the shaded region - const rectWidth = placeX - dimensions.left; - const rectHeight = dimensions.bottom - priceY; - - // Don't render if dimensions are invalid or too small - if (!Number.isFinite(rectWidth) || !Number.isFinite(rectHeight) || rectWidth <= 0 || rectHeight <= 0) { + if (!overlayContent) { return null; } return (
- - {/* Shaded region - from top-left to the intersection point */} - - + {overlayContent}
); }, diff --git a/src/components/charts/ScatterChart.tsx b/src/components/charts/ScatterChart.tsx index 59c8f340a..5a6c03f87 100644 --- a/src/components/charts/ScatterChart.tsx +++ b/src/components/charts/ScatterChart.tsx @@ -74,23 +74,30 @@ export interface ScatterChartProps { } const ScatterChart = React.memo( - ({ - data, - size, - valueFormatter, - onMouseOver, - activeIndex, - useLogarithmicScale = false, - horizontalReferenceLines = [], - xOptions, - yOptions, - customValueTransform, - onPointClick, - toolTipOptions, - }: ScatterChartProps) => { - const chartRef = useRef(null); - const activeIndexRef = useRef(activeIndex); - const selectedPointRef = useRef<[number, number] | null>(null); + React.forwardRef( + ( + { + data, + size, + valueFormatter, + onMouseOver, + activeIndex, + useLogarithmicScale = false, + horizontalReferenceLines = [], + xOptions, + yOptions, + customValueTransform, + onPointClick, + toolTipOptions, + }, + ref, + ) => { + const chartRef = useRef(null); + const activeIndexRef = useRef(activeIndex); + const selectedPointRef = useRef<[number, number] | null>(null); + + // Expose chart instance through ref + React.useImperativeHandle(ref, () => chartRef.current as Chart, []); useEffect(() => { activeIndexRef.current = activeIndex; @@ -480,18 +487,19 @@ const ScatterChart = React.memo( }; } }, [size]); - return ( - - ); - }, + return ( + + ); + }, + ), areScatterChartPropsEqual, ); @@ -644,4 +652,6 @@ function areScatterChartPropsEqual(prevProps: ScatterChartProps, nextProps: Scat return true; } +ScatterChart.displayName = "ScatterChart"; + export default ScatterChart; diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index b1edb3669..8d36744ac 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -15,8 +15,9 @@ import { useHarvestableIndex, usePodLine } from "@/state/useFieldData"; import { trackSimpleEvent } from "@/utils/analytics"; import { ActiveElement, ChartEvent, PointStyle, TooltipOptions } from "chart.js"; import { Chart } from "chart.js"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; +import MarketChartOverlay, { type OverlayParams } from "@/components/MarketChartOverlay"; import { AllActivityTable } from "./market/AllActivityTable"; import { FarmerActivityTable } from "./market/FarmerActivityTable"; import MarketModeSelect from "./market/MarketModeSelect"; @@ -161,71 +162,91 @@ export function Market() { const navigate = useNavigate(); const { data, isLoaded } = useAllMarket(); const podLine = usePodLine(); - const podLineAsNumber = podLine.toNumber() / MILLION; const harvestableIndex = useHarvestableIndex(); + const podLineAsNumber = podLine.toNumber() / MILLION; const navHeight = useNavHeight(); + + // Overlay state and chart ref + const chartRef = useRef(null); + const [overlayParams, setOverlayParams] = useState(null); + + // Memoized callback to update overlay params + const handleOverlayParamsChange = useCallback((params: OverlayParams) => { + setOverlayParams(params); + }, []); const scatterChartData: MarketScatterChartData[] = useMemo( () => shapeScatterChartData(data || [], harvestableIndex), [data, harvestableIndex], ); - const toolTipOptions: Partial = { - enabled: false, - external: (context) => { - const tooltipEl = document.getElementById("chartjs-tooltip"); - - // Create element on first render - if (!tooltipEl) { - const div = document.createElement("div"); - div.id = "chartjs-tooltip"; - div.style.background = "rgba(0, 0, 0, 0.7)"; - div.style.borderRadius = "3px"; - div.style.color = "white"; - div.style.opacity = "1"; - div.style.pointerEvents = "none"; - div.style.position = "absolute"; - div.style.transform = "translate(25px)"; // Position to right of point - div.style.transition = "all .1s ease"; - document.body.appendChild(div); - } else { - // Hide if no tooltip - if (context.tooltip.opacity === 0) { - tooltipEl.style.opacity = "0"; - return; - } - - // Set Text - if (context.tooltip.body) { - const position = context.tooltip.dataPoints[0].element.getProps(["x", "y"], true); - const dataPoint = context.tooltip.dataPoints[0].raw as MarketScatterChartDataPoint; - tooltipEl.style.opacity = "1"; - tooltipEl.style.width = "250px"; - tooltipEl.style.backgroundColor = "white"; - tooltipEl.style.color = "black"; - tooltipEl.style.borderRadius = "10px"; - tooltipEl.style.border = "1px solid #D9D9D9"; - tooltipEl.style.zIndex = String(TOOLTIP_Z_INDEX); - // Basically all of this is custom logic for 3 different breakpoints to either display the tooltip to the top right or bottom right of the point. - const topOfPoint = position.y + getPointTopOffset(); - const bottomOfPoint = position.y + getPointBottomOffset(); - tooltipEl.style.top = dataPoint.y > 0.8 ? bottomOfPoint : topOfPoint + "px"; // Position relative to point y - // end custom logic - tooltipEl.style.left = position.x + "px"; // Position relative to point x - tooltipEl.style.padding = context.tooltip.options.padding + "px " + context.tooltip.options.padding + "px"; - const listingHeader = ` + // Calculate chart x-axis max value - use podLineAsNumber with a minimum value + // Don't depend on overlayParams to avoid re-rendering chart on every slider change + const chartXMax = useMemo(() => { + // Use podLineAsNumber if available, otherwise use a reasonable default + const maxValue = podLineAsNumber > 0 ? podLineAsNumber : 50; // Default to 50 million + + // Ensure a minimum value for the chart to render properly + return Math.max(maxValue, 1); // At least 1 million + }, [podLineAsNumber]); + + const toolTipOptions: Partial = useMemo( + () => ({ + enabled: false, + external: (context) => { + const tooltipEl = document.getElementById("chartjs-tooltip"); + + // Create element on first render + if (!tooltipEl) { + const div = document.createElement("div"); + div.id = "chartjs-tooltip"; + div.style.background = "rgba(0, 0, 0, 0.7)"; + div.style.borderRadius = "3px"; + div.style.color = "white"; + div.style.opacity = "1"; + div.style.pointerEvents = "none"; + div.style.position = "absolute"; + div.style.transform = "translate(25px)"; // Position to right of point + div.style.transition = "all .1s ease"; + document.body.appendChild(div); + } else { + // Hide if no tooltip + if (context.tooltip.opacity === 0) { + tooltipEl.style.opacity = "0"; + return; + } + + // Set Text + if (context.tooltip.body) { + const position = context.tooltip.dataPoints[0].element.getProps(["x", "y"], true); + const dataPoint = context.tooltip.dataPoints[0].raw as MarketScatterChartDataPoint; + tooltipEl.style.opacity = "1"; + tooltipEl.style.width = "250px"; + tooltipEl.style.backgroundColor = "white"; + tooltipEl.style.color = "black"; + tooltipEl.style.borderRadius = "10px"; + tooltipEl.style.border = "1px solid #D9D9D9"; + tooltipEl.style.zIndex = String(TOOLTIP_Z_INDEX); + // Basically all of this is custom logic for 3 different breakpoints to either display the tooltip to the top right or bottom right of the point. + const topOfPoint = position.y + getPointTopOffset(); + const bottomOfPoint = position.y + getPointBottomOffset(); + tooltipEl.style.top = dataPoint.y > 0.8 ? bottomOfPoint : topOfPoint + "px"; // Position relative to point y + // end custom logic + tooltipEl.style.left = position.x + "px"; // Position relative to point x + tooltipEl.style.padding = context.tooltip.options.padding + "px " + context.tooltip.options.padding + "px"; + const listingHeader = `
pod icon ${TokenValue.fromHuman(dataPoint.amount, 0).toHuman("short")} Pods Listed
`; - const orderHeader = ` + const orderHeader = `
pod icon Order for ${TokenValue.fromHuman(dataPoint.amount, 0).toHuman("short")} Pods
`; - tooltipEl.innerHTML = ` + tooltipEl.innerHTML = `
${dataPoint.eventType === "LISTING" ? listingHeader : orderHeader}
@@ -241,10 +262,12 @@ export function Market() {
`; + } } - } - }, - }; + }, + }), + [], + ); // Upon initial page load only, navigate to a page other than Activity if the url is granular. // In general it is allowed to be on Activity tab with these granular urls, hence the empty dependency array. @@ -377,12 +400,22 @@ export function Market() {
)} +
@@ -414,9 +447,13 @@ export function Market() {
- {viewMode === "buy" && id === "create" && } - {viewMode === "buy" && id === "fill" && } - {viewMode === "sell" && id === "create" && } + {viewMode === "buy" && id === "create" && ( + + )} + {viewMode === "buy" && id === "fill" && } + {viewMode === "sell" && id === "create" && ( + + )} {viewMode === "sell" && id === "fill" && }
diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 560fee83a..3dda78f59 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -28,6 +28,7 @@ import { useLocation, useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; +import type { OverlayParams, PlotOverlayData } from "@/components/MarketChartOverlay"; interface PodListingData { plot: Plot; @@ -67,7 +68,11 @@ const removeTrailingZeros = (value: string): string => { return value.includes(".") ? value.replace(/\.?0+$/, "") : value; }; -export default function CreateListing() { +interface CreateListingProps { + onOverlayParamsChange?: (params: OverlayParams) => void; +} + +export default function CreateListing({ onOverlayParamsChange }: CreateListingProps) { const { address: account } = useAccount(); const diamondAddress = useProtocolAddress(); const mainToken = useTokenData().mainToken; @@ -455,6 +460,47 @@ export default function CreateListing() { writeWithEstimateGas, ]); + // Throttle overlay parameter updates for better performance + const overlayUpdateTimerRef = useRef(null); + + useEffect(() => { + // Clear any pending update + if (overlayUpdateTimerRef.current) { + clearTimeout(overlayUpdateTimerRef.current); + } + + // Throttle overlay updates to avoid performance issues during slider drag + overlayUpdateTimerRef.current = setTimeout(() => { + if (listingData.length > 0 && pricePerPod > 0) { + const plotOverlayData: PlotOverlayData[] = listingData.map((data) => ({ + startIndex: data.index, + amount: data.amount, + })); + + onOverlayParamsChange?.({ + mode: "sell", + pricePerPod, + plots: plotOverlayData, + }); + } else { + onOverlayParamsChange?.(null); + } + }, 16); // ~60fps (16ms) + + return () => { + if (overlayUpdateTimerRef.current) { + clearTimeout(overlayUpdateTimerRef.current); + } + }; + }, [listingData, pricePerPod, onOverlayParamsChange]); + + // Cleanup on unmount + useEffect(() => { + return () => { + onOverlayParamsChange?.(null); + }; + }, [onOverlayParamsChange]); + // ui state const disabled = !pricePerPod || !amount || !account || plot.length === 0 || selectedExpiresIn <= 0; diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 0dda896d3..1ae79943b 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -37,6 +37,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; +import type { OverlayParams } from "@/components/MarketChartOverlay"; // Constants const PRICE_PER_POD_CONFIG = { @@ -85,7 +86,11 @@ const useFilterTokens = () => { }, [tokens, isWSOL]); }; -export default function CreateOrder() { +interface CreateOrderProps { + onOverlayParamsChange?: (params: OverlayParams) => void; +} + +export default function CreateOrder({ onOverlayParamsChange }: CreateOrderProps = {}) { const diamondAddress = useProtocolAddress(); const mainToken = useTokenData().mainToken; const { queryKeys: balanceQKs } = useFarmerBalances(); @@ -169,6 +174,42 @@ export default function CreateOrder() { } }, [preferredToken, preferredLoading, didSetPreferred]); + // Throttle overlay parameter updates for better performance + const overlayUpdateTimerRef = useRef(null); + + useEffect(() => { + // Clear any pending update + if (overlayUpdateTimerRef.current) { + clearTimeout(overlayUpdateTimerRef.current); + } + + // Throttle overlay updates to avoid performance issues during slider drag + overlayUpdateTimerRef.current = setTimeout(() => { + if (maxPlaceInLine && maxPlaceInLine > 0 && pricePerPod > 0) { + onOverlayParamsChange?.({ + mode: "buy", + pricePerPod, + maxPlaceInLine, + }); + } else { + onOverlayParamsChange?.(null); + } + }, 16); // ~60fps (16ms) + + return () => { + if (overlayUpdateTimerRef.current) { + clearTimeout(overlayUpdateTimerRef.current); + } + }; + }, [pricePerPod, maxPlaceInLine, onOverlayParamsChange]); + + // Cleanup overlay on unmount + useEffect(() => { + return () => { + onOverlayParamsChange?.(null); + }; + }, [onOverlayParamsChange]); + // Token selection handler with tracking const handleTokenSelection = useCallback( (newToken: Token) => { diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index ec83eb1db..df47868f1 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -43,6 +43,7 @@ import { useNavigate, useSearchParams } from "react-router-dom"; import { toast } from "sonner"; import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; +import type { OverlayParams } from "@/components/MarketChartOverlay"; // Configuration constants const PRICE_PER_POD_CONFIG = { @@ -81,7 +82,11 @@ const useFilterTokens = () => { }, [tokens, isWSOL]); }; -export default function FillListing() { +interface FillListingProps { + onOverlayParamsChange?: (params: OverlayParams) => void; +} + +export default function FillListing({ onOverlayParamsChange }: FillListingProps = {}) { const mainToken = useTokenData().mainToken; const diamondAddress = useProtocolAddress(); const account = useAccount(); @@ -200,6 +205,42 @@ export default function FillListing() { setHasInitializedPlace(true); // Mark as initialized to prevent default value override }, [listingId, allListings, maxPlace, mainToken.decimals, harvestableIndex]); + // Update overlay parameters when maxPricePerPod or maxPlaceInLine changes + const overlayUpdateTimerRef = useRef(null); + + useEffect(() => { + // Clear any pending update + if (overlayUpdateTimerRef.current) { + clearTimeout(overlayUpdateTimerRef.current); + } + + // Throttle overlay updates to avoid performance issues during slider drag + overlayUpdateTimerRef.current = setTimeout(() => { + if (maxPlaceInLine && maxPlaceInLine > 0 && maxPricePerPod) { + onOverlayParamsChange?.({ + pricePerPod: maxPricePerPod, + maxPlaceInLine, + mode: "buy", + }); + } else { + onOverlayParamsChange?.(null); + } + }, 16); // ~60fps (16ms) + + return () => { + if (overlayUpdateTimerRef.current) { + clearTimeout(overlayUpdateTimerRef.current); + } + }; + }, [maxPricePerPod, maxPlaceInLine, onOverlayParamsChange]); + + // Cleanup overlay on unmount + useEffect(() => { + return () => { + onOverlayParamsChange?.(null); + }; + }, [onOverlayParamsChange]); + // Token selection handler with tracking const handleTokenSelection = useCallback( (newToken: Token) => { From 0e9d9e2d06793e8c0161101174b8003431d837eb Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 14 Nov 2025 20:25:47 +0300 Subject: [PATCH 47/54] Implement pod score and color feature --- src/components/MarketChartOverlay.tsx | 113 ++++++++--- src/components/PodScoreGradientLegend.tsx | 65 +++++++ src/components/charts/ScatterChart.tsx | 9 +- src/pages/Market.tsx | 78 +++++++- src/pages/market/actions/CreateListing.tsx | 34 ++++ src/pages/market/actions/FillListing.tsx | 60 ++++++ src/utils/podScore.ts | 39 ++++ src/utils/podScoreColorScaler.ts | 208 +++++++++++++++++++++ 8 files changed, 574 insertions(+), 32 deletions(-) create mode 100644 src/components/PodScoreGradientLegend.tsx create mode 100644 src/utils/podScore.ts create mode 100644 src/utils/podScoreColorScaler.ts diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx index 96edb8480..2d6f49a2b 100644 --- a/src/components/MarketChartOverlay.tsx +++ b/src/components/MarketChartOverlay.tsx @@ -1,4 +1,6 @@ import { TokenValue } from "@/classes/TokenValue"; +import { buildPodScoreColorScaler } from "@/utils/podScoreColorScaler"; +import { calculatePodScore } from "@/utils/podScore"; import { Chart } from "chart.js"; import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; @@ -12,8 +14,8 @@ const BORDER_WIDTH = 1; // Frozen color constants for immutability and optimization const BUY_OVERLAY_COLORS = Object.freeze({ - shadedRegion: "rgba(64, 176, 166, 0.15)", // Teal with 15% opacity - border: "rgba(64, 176, 166, 0.8)", // Teal with 80% opacity + shadedRegion: "rgba(92, 184, 169, 0.15)", // Teal with 15% opacity + border: "rgba(92, 184, 169, 0.8)", // Teal with 80% opacity }); const SELL_OVERLAY_COLORS = Object.freeze({ @@ -52,6 +54,7 @@ interface MarketChartOverlayProps { chartRef: React.RefObject; visible: boolean; harvestableIndex: TokenValue; + marketListingScores?: number[]; // Pod Scores from existing market listings for color scaling } type ChartDimensions = { @@ -71,9 +74,13 @@ interface PlotRectangle { } const MarketChartOverlay = React.memo( - ({ overlayParams, chartRef, visible, harvestableIndex }) => { + ({ overlayParams, chartRef, visible, harvestableIndex, marketListingScores = [] }) => { const [dimensions, setDimensions] = useState(null); const containerRef = useRef(null); + + // Note: Throttling removed to ensure immediate updates during price changes + // Performance is acceptable without throttling due to optimized calculations + const throttledOverlayParams = overlayParams; // Optimized pixel position calculator with minimal validation overhead const calculatePixelPosition = useCallback((dataValue: number, axis: "x" | "y"): number | null => { @@ -119,16 +126,27 @@ const MarketChartOverlay = React.memo( // Optimized resize handling with single debounced handler useEffect(() => { let timeoutId: NodeJS.Timeout; + let animationFrameId: number | null = null; let resizeObserver: ResizeObserver | null = null; - const debouncedUpdate = () => { - clearTimeout(timeoutId); - timeoutId = setTimeout(() => { + const updateDimensions = () => { + // Use requestAnimationFrame to sync with browser's repaint cycle + if (animationFrameId !== null) { + cancelAnimationFrame(animationFrameId); + } + + animationFrameId = requestAnimationFrame(() => { const newDimensions = getChartDimensions(); if (newDimensions) { setDimensions(newDimensions); } - }, RESIZE_DEBOUNCE_MS); + animationFrameId = null; + }); + }; + + const debouncedUpdate = () => { + clearTimeout(timeoutId); + timeoutId = setTimeout(updateDimensions, RESIZE_DEBOUNCE_MS); }; // Initial update @@ -144,18 +162,45 @@ const MarketChartOverlay = React.memo( if (parent) { resizeObserver.observe(parent); } + // Also observe the chart canvas itself for more accurate updates + const chart = chartRef.current; + if (chart?.canvas) { + resizeObserver.observe(chart.canvas); + } } // Fallback window resize listener with passive flag for better performance window.addEventListener("resize", debouncedUpdate, { passive: true }); + + // Listen to Chart.js resize events for immediate sync + const chart = chartRef.current; + if (chart) { + // Chart.js emits 'resize' event when chart dimensions change + chart.resize(); + // Force update after chart is ready + updateDimensions(); + } return () => { clearTimeout(initialTimeout); clearTimeout(timeoutId); + if (animationFrameId !== null) { + cancelAnimationFrame(animationFrameId); + } resizeObserver?.disconnect(); window.removeEventListener("resize", debouncedUpdate); }; - }, [getChartDimensions]); + }, [getChartDimensions, chartRef]); + + // Update dimensions when overlay params or visibility changes + useEffect(() => { + if (visible && throttledOverlayParams) { + const newDimensions = getChartDimensions(); + if (newDimensions) { + setDimensions(newDimensions); + } + } + }, [throttledOverlayParams, visible, getChartDimensions]); // Optimized buy overlay renderer with minimal validation const renderBuyOverlay = useCallback( @@ -269,15 +314,15 @@ const MarketChartOverlay = React.memo( // Highly optimized rectangle memoization with minimal object creation const memoizedRectangles = useMemo(() => { - if (!overlayParams || overlayParams.mode !== "sell" || !dimensions) return null; + if (!throttledOverlayParams || throttledOverlayParams.mode !== "sell" || !dimensions) return null; - const { pricePerPod, plots } = overlayParams; + const { pricePerPod, plots } = throttledOverlayParams; // Fast validation if (pricePerPod <= 0 || !plots?.length) return null; // Pre-allocate array for better performance - const rectangles: Array = []; + const rectangles: Array = []; // Use for loop for better performance than map/filter chain for (let i = 0; i < plots.length; i++) { @@ -285,6 +330,12 @@ const MarketChartOverlay = React.memo( const rect = calculatePlotRectangle(plot, pricePerPod); if (rect) { + // Calculate place in line for Pod Score + const placeInLineNum = plot.startIndex.toNumber() - harvestableIndex.toNumber(); + // Use placeInLine in millions for consistent scaling with market listings + const podScore = calculatePodScore(pricePerPod, placeInLineNum / MILLION); + + rectangles.push({ x: rect.x, y: rect.y, @@ -292,12 +343,13 @@ const MarketChartOverlay = React.memo( height: rect.height, plotKey: plot.startIndex.toHuman(), plotIndex: i, + podScore, }); } } return rectangles.length > 0 ? rectangles : null; - }, [overlayParams, dimensions, calculatePlotRectangle]); + }, [throttledOverlayParams, dimensions, calculatePlotRectangle, harvestableIndex]); // Highly optimized sell overlay renderer with pre-calculated values const renderSellOverlay = useCallback( @@ -319,6 +371,17 @@ const MarketChartOverlay = React.memo( const lineHeight = bottom - top; const lastRectIndex = memoizedRectangles.length - 1; + // Build color scaler from both market listings and overlay plot scores + // This ensures overlay colors are relative to existing market conditions + const plotScores = memoizedRectangles + .map(rect => rect.podScore) + .filter((score): score is number => score !== undefined); + + // Combine market listing scores with overlay plot scores for consistent scaling + const allScores = [...marketListingScores, ...plotScores]; + + const colorScaler = buildPodScoreColorScaler(allScores); + return ( <> {/* Horizontal price line - Tailwind + minimal inline styles */} @@ -336,18 +399,19 @@ const MarketChartOverlay = React.memo( const centerX = rect.x + (rect.width >> 1); // Bit shift for division by 2 const centerY = clampedPriceY; + // Get dynamic color based on Pod Score, fallback to default if undefined + const fillColor = rect.podScore !== undefined + ? colorScaler.toColor(rect.podScore) + : SELL_OVERLAY_COLORS.plotFill; + return (
@@ -384,16 +448,16 @@ const MarketChartOverlay = React.memo( ); // Don't render if not visible or no overlay params - if (!visible || !overlayParams || !dimensions) { + if (!visible || !throttledOverlayParams || !dimensions) { return null; } // Determine which overlay to render based on mode let overlayContent: JSX.Element | null = null; - if (overlayParams.mode === "buy") { - overlayContent = renderBuyOverlay(overlayParams); - } else if (overlayParams.mode === "sell") { - overlayContent = renderSellOverlay(overlayParams); + if (throttledOverlayParams.mode === "buy") { + overlayContent = renderBuyOverlay(throttledOverlayParams); + } else if (throttledOverlayParams.mode === "sell") { + overlayContent = renderSellOverlay(throttledOverlayParams); } if (!overlayContent) { @@ -403,8 +467,7 @@ const MarketChartOverlay = React.memo( return (
{overlayContent}
diff --git a/src/components/PodScoreGradientLegend.tsx b/src/components/PodScoreGradientLegend.tsx new file mode 100644 index 000000000..e609e1255 --- /dev/null +++ b/src/components/PodScoreGradientLegend.tsx @@ -0,0 +1,65 @@ +import TooltipSimple from "./TooltipSimple"; +import { cn } from "@/utils/utils"; + +interface PodScoreGradientLegendProps { + learnMoreUrl?: string; + className?: string; +} + +/** + * Displays a gradient legend showing the Pod Score color scale. + * Shows a horizontal gradient bar from brown (poor) to gold (average) to green (good), + * with an info icon tooltip explaining the Pod Score metric. + */ +export default function PodScoreGradientLegend({ + learnMoreUrl = "https://docs.pinto.money/", + className, +}: PodScoreGradientLegendProps) { + return ( +
+ {/* Row 1: Title and info icon */} +
+ Pod Score + +

+ Pod Score measures listing quality based on Return/Place in Line ratio. Higher scores (green) indicate + better value opportunities. +

+ + Learn more + +
+ } + /> +
+ + {/* Row 2: Gradient bar */} +
+ + {/* Row 3: Labels (Low, Avg, High) */} +
+ Low + Avg + High +
+
+ ); +} diff --git a/src/components/charts/ScatterChart.tsx b/src/components/charts/ScatterChart.tsx index 5a6c03f87..1ba30d3fe 100644 --- a/src/components/charts/ScatterChart.tsx +++ b/src/components/charts/ScatterChart.tsx @@ -188,7 +188,8 @@ const ScatterChart = React.memo( datasets: data.map(({ label, data, color, pointStyle, pointRadius }) => ({ label, data, - backgroundColor: color, + // Use per-point colors if available, otherwise use dataset color + backgroundColor: data.map((point: any) => point.color || color), pointStyle, pointRadius: pointRadius, hoverRadius: pointRadius + 1, @@ -626,7 +627,8 @@ function areScatterChartPropsEqual(prevProps: ScatterChartProps, nextProps: Scat if ( prevPoint.x !== nextPoint.x || prevPoint.y !== nextPoint.y || - (prevPoint as any).eventId !== (nextPoint as any).eventId + (prevPoint as any).eventId !== (nextPoint as any).eventId || + (prevPoint as any).color !== (nextPoint as any).color ) { return false; } @@ -641,7 +643,8 @@ function areScatterChartPropsEqual(prevProps: ScatterChartProps, nextProps: Scat if ( prevPoint.x !== nextPoint.x || prevPoint.y !== nextPoint.y || - (prevPoint as any).eventId !== (nextPoint as any).eventId + (prevPoint as any).eventId !== (nextPoint as any).eventId || + (prevPoint as any).color !== (nextPoint as any).color ) { return false; } diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 8d36744ac..84b8ecd45 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -13,11 +13,14 @@ import useNavHeight from "@/hooks/display/useNavHeight"; import { useAllMarket } from "@/state/market/useAllMarket"; import { useHarvestableIndex, usePodLine } from "@/state/useFieldData"; import { trackSimpleEvent } from "@/utils/analytics"; +import { buildPodScoreColorScaler } from "@/utils/podScoreColorScaler"; +import { calculatePodScore } from "@/utils/podScore"; import { ActiveElement, ChartEvent, PointStyle, TooltipOptions } from "chart.js"; import { Chart } from "chart.js"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import MarketChartOverlay, { type OverlayParams } from "@/components/MarketChartOverlay"; +import PodScoreGradientLegend from "@/components/PodScoreGradientLegend"; import { AllActivityTable } from "./market/AllActivityTable"; import { FarmerActivityTable } from "./market/FarmerActivityTable"; import MarketModeSelect from "./market/MarketModeSelect"; @@ -68,6 +71,8 @@ type MarketScatterChartDataPoint = { amount: number; placeInLine: number; eventIndex?: number; + podScore?: number; + color?: string; }; type MarketScatterChartData = { @@ -79,12 +84,12 @@ type MarketScatterChartData = { }; /** - * Transforms raw market data into scatter chart format + * Transforms raw market data into scatter chart format with Pod Score coloring */ const shapeScatterChartData = (data: any[], harvestableIndex: TokenValue): MarketScatterChartData[] => { if (!data) return []; - return data.reduce( + const result = data.reduce( (acc, event) => { // Skip Fill Orders if ("toFarmer" in event) { @@ -122,6 +127,10 @@ const shapeScatterChartData = (data: any[], harvestableIndex: TokenValue): Marke const eventIndex = event.index.toNumber(); if (placeInLine !== null && price !== null) { + // Calculate Pod Score for the listing + // Use placeInLine in millions for consistent scaling with chart x-axis + const podScore = calculatePodScore(price, placeInLine / MILLION); + acc[1].data.push({ x: placeInLine / MILLION, y: price, @@ -131,6 +140,7 @@ const shapeScatterChartData = (data: any[], harvestableIndex: TokenValue): Marke status, amount, placeInLine, + podScore, }); } } @@ -141,19 +151,38 @@ const shapeScatterChartData = (data: any[], harvestableIndex: TokenValue): Marke { label: "Orders", data: [] as MarketScatterChartDataPoint[], - color: "#40b0a6", // teal + color: "#5CB8A9", // teal pointStyle: "circle" as PointStyle, pointRadius: 6, }, { label: "Listings", data: [] as MarketScatterChartDataPoint[], - color: "#e0b57d", // tan + color: "#e0b57d", // tan (fallback) pointStyle: "rect" as PointStyle, pointRadius: 6, }, ], ); + + // Apply Pod Score coloring to listings + // Extract all listing Pod Scores (filter out undefined values) + const listingScores = result[1].data + .map(point => point.podScore) + .filter((score): score is number => score !== undefined); + + // Build color scaler from listing scores + const colorScaler = buildPodScoreColorScaler(listingScores); + + // Map through listings and apply colors + result[1].data = result[1].data.map(point => ({ + ...point, + color: point.podScore !== undefined + ? colorScaler.toColor(point.podScore) + : "#e0b57d", // Fallback color for invalid Pod Scores + })); + + return result; }; export function Market() { @@ -180,6 +209,21 @@ export function Market() { [data, harvestableIndex], ); + // Extract Pod Scores from market listings for overlay color scaling + const marketListingScores = useMemo(() => { + if (!scatterChartData || scatterChartData.length < 2) return []; + + // Listings are at index 1 in scatterChartData + const listingsData = scatterChartData[1]; + if (!listingsData?.data) return []; + + const scores = listingsData.data + .map(point => point.podScore) + .filter((score): score is number => score !== undefined); + + return scores; + }, [scatterChartData]); + // Calculate chart x-axis max value - use podLineAsNumber with a minimum value // Don't depend on overlayParams to avoid re-rendering chart on every slider change const chartXMax = useMemo(() => { @@ -246,6 +290,24 @@ export function Market() { Order for ${TokenValue.fromHuman(dataPoint.amount, 0).toHuman("short")} Pods
`; + // Format Pod Score for display (only for listings) + const formatPodScore = (score: number): string => { + if (score >= 1000000) { + return `${(score / 1000000).toFixed(2)}M`; + } else if (score >= 1000) { + return `${(score / 1000).toFixed(1)}K`; + } else { + return score.toFixed(2); + } + }; + + const podScoreRow = dataPoint.eventType === "LISTING" && dataPoint.podScore !== undefined + ? `
+ Pod Score: + ${formatPodScore(dataPoint.podScore)} +
` + : ''; + tooltipEl.innerHTML = `
${dataPoint.eventType === "LISTING" ? listingHeader : orderHeader} @@ -260,6 +322,7 @@ export function Market() { Place in Line: ${TokenValue.fromHuman(dataPoint.placeInLine, 0).toHuman("long")}
+ ${podScoreRow}
`; } @@ -407,6 +470,12 @@ export function Market() { onPointClick={onPointClick} toolTipOptions={toolTipOptions as TooltipOptions} /> + + {/* Gradient Legend - positioned in top-right corner */} +
+ +
+
diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 3dda78f59..3603bb956 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -19,6 +19,7 @@ import { useQueryKeys } from "@/state/useQueryKeys"; import useTokenData from "@/state/useTokenData"; import { trackSimpleEvent } from "@/utils/analytics"; import { formatter } from "@/utils/format"; +import { calculatePodScore } from "@/utils/podScore"; import { FarmToMode, Plot } from "@/utils/types"; import { cn } from "@/utils/utils"; import { useQueryClient } from "@tanstack/react-query"; @@ -200,6 +201,26 @@ export default function CreateListing({ onOverlayParamsChange }: CreateListingPr return result; }, [plot, podRange, amount]); + // Calculate Pod Score range for selected plots + const podScoreRange = useMemo(() => { + if (listingData.length === 0 || !pricePerPod || pricePerPod <= 0) return null; + + const scores = listingData + .map((data) => { + const placeInLine = data.index.sub(harvestableIndex).toNumber(); + // Use placeInLine in millions for consistent scaling + return calculatePodScore(pricePerPod, placeInLine / MILLION); + }) + .filter((score): score is number => score !== undefined); + + if (scores.length === 0) return null; + + const min = Math.min(...scores); + const max = Math.max(...scores); + + return { min, max, isSingle: scores.length === 1 || min === max }; + }, [listingData, pricePerPod, harvestableIndex]); + // Helper function to sort plots by index const sortPlotsByIndex = useCallback((plots: Plot[]): Plot[] => { return [...plots].sort((a, b) => a.index.sub(b.index).toNumber()); @@ -612,6 +633,19 @@ export default function CreateListing({ onOverlayParamsChange }: CreateListingPr

)} + {/* Pod Score Display */} + {podScoreRange && ( +
+

+ Pod Score:{" "} + + {podScoreRange.isSingle + ? formatter.number(podScoreRange.min, { minDecimals: 2, maxDecimals: 2 }) + : `${formatter.number(podScoreRange.min, { minDecimals: 2, maxDecimals: 2 })} - ${formatter.number(podScoreRange.max, { minDecimals: 2, maxDecimals: 2 })}`} + +

+
+ )}
{/* Advanced Settings - Collapsible */} {text}
; }; +/** + * Calculates Pod Score for a listing based on price per pod and place in line. + * Formula: (1/pricePerPod - 1) / placeInLine * 1e6 + * + * @param pricePerPod - Price per pod (must be > 0) + * @param placeInLine - Position in harvest queue in millions (must be > 0) + * @returns Pod Score value, or undefined for invalid inputs + */ +const calculatePodScore = (pricePerPod: number, placeInLine: number): number | undefined => { + // Handle edge cases: invalid price or place in line + if (pricePerPod <= 0 || placeInLine <= 0) { + return undefined; + } + + // Calculate return: (1/pricePerPod - 1) + const returnValue = 1 / pricePerPod - 1; + + // Calculate Pod Score: return / placeInLine * 1e6 + const podScore = (returnValue / placeInLine) * 1e6; + + // Filter out invalid results (NaN, Infinity) + if (!Number.isFinite(podScore)) { + return undefined; + } + + return podScore; +}; + // Utility function to format and truncate price per pod values const formatPricePerPod = (value: number): number => { return Math.floor(value * PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER) / PRICE_PER_POD_CONFIG.DECIMAL_MULTIPLIER; @@ -179,6 +207,25 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps } }, [preferredToken, preferredLoading, didSetPreferred]); + // Find selected listing based on listingId parameter + const selectedListing = useMemo(() => { + if (!listingId || !allListings?.podListings) return null; + return allListings.podListings.find((l) => l.id === listingId) || null; + }, [listingId, allListings]); + + // Calculate Pod Score for the selected listing + const listingPodScore = useMemo(() => { + if (!selectedListing) return undefined; + + const price = TokenValue.fromBlockchain(selectedListing.pricePerPod, mainToken.decimals).toNumber(); + const placeInLine = TokenValue.fromBlockchain(selectedListing.index, PODS.decimals) + .sub(harvestableIndex) + .toNumber(); + + // Use placeInLine in millions for consistent scaling + return calculatePodScore(price, placeInLine / 1_000_000); + }, [selectedListing, mainToken.decimals, harvestableIndex]); + // Pre-fill form when listingId parameter is present (clicked from chart) useEffect(() => { if (!listingId || !allListings?.podListings || maxPlace === 0) return; @@ -711,6 +758,19 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps

)} + {/* Pod Score Display */} + {selectedListing && ( +
+

+ Pod Score:{" "} + + {listingPodScore !== undefined + ? formatter.number(listingPodScore, { minDecimals: 2, maxDecimals: 2 }) + : 'N/A'} + +

+
+ )}
{/* Place in Line Slider */} diff --git a/src/utils/podScore.ts b/src/utils/podScore.ts new file mode 100644 index 000000000..8d3e3584f --- /dev/null +++ b/src/utils/podScore.ts @@ -0,0 +1,39 @@ +/** + * Pod Score Calculation Utility + * + * Provides the Pod Score calculation function for evaluating pod listings. + * Pod Score = (Return / Place in Line) * 1e6 + * where Return = (1/pricePerPod - 1) + */ + +/** + * Calculate Pod Score for a pod listing + * + * Formula: (1/pricePerPod - 1) / placeInLine * 1e6 + * + * @param pricePerPod - Price per pod (must be > 0) + * @param placeInLine - Position in harvest queue in millions (must be > 0) + * @returns Pod Score value, or undefined for invalid inputs + */ +export const calculatePodScore = (pricePerPod: number, placeInLine: number): number | undefined => { + // Handle edge cases: invalid price or place in line + if (pricePerPod <= 0 || placeInLine <= 0) { + return undefined; + } + + // Calculate return: (1/pricePerPod - 1) + // When pricePerPod < 1.0: positive return (good deal) + // When pricePerPod = 1.0: zero return (break even) + // When pricePerPod > 1.0: negative return (bad deal) + const returnValue = 1 / pricePerPod - 1; + + // Calculate Pod Score: return / placeInLine * 1e6 + const podScore = (returnValue / placeInLine) * 1e6; + + // Filter out invalid results (NaN, Infinity) + if (!Number.isFinite(podScore)) { + return undefined; + } + + return podScore; +}; diff --git a/src/utils/podScoreColorScaler.ts b/src/utils/podScoreColorScaler.ts new file mode 100644 index 000000000..594649cc8 --- /dev/null +++ b/src/utils/podScoreColorScaler.ts @@ -0,0 +1,208 @@ +/** + * Pod Score Color Scaler Utility + * + * Provides percentile-based color scaling for Pod Score visualization. + * Maps scores to a three-stop gradient: brown (poor) → gold (average) → green (good) + */ + +type Hex = `#${string}`; + +interface RGB { + r: number; + g: number; + b: number; +} + +interface ScalerOptions { + lowerPct?: number; // Default: 5 + upperPct?: number; // Default: 95 + smoothFactor?: number; // Default: 0 (no smoothing) + bad?: Hex; // Default: '#91580D' + mid?: Hex; // Default: '#E8C15F' + good?: Hex; // Default: '#A8E868' +} + +export interface ColorScaler { + toColor: (score: number) => Hex; + toUnit: (score: number) => number; + bounds: { low: number; high: number }; +} + +/** + * Calculate percentile value from sorted array + */ +function percentile(values: number[], p: number): number { + if (values.length === 0) return 0; + if (values.length === 1) return values[0]; + + // Sort values in ascending order + const sorted = [...values].sort((a, b) => a - b); + + // Calculate index (using linear interpolation) + const index = (p / 100) * (sorted.length - 1); + const lower = Math.floor(index); + const upper = Math.ceil(index); + const weight = index - lower; + + if (lower === upper) { + return sorted[lower]; + } + + return sorted[lower] * (1 - weight) + sorted[upper] * weight; +} + +/** + * Clamp value between min and max + */ +function clamp(x: number, min: number, max: number): number { + return Math.min(Math.max(x, min), max); +} + +/** + * Exponentially smooth value with previous value + */ +function smooth(prev: number, next: number, alpha: number): number { + return prev + alpha * (next - prev); +} + +/** + * Convert hex color to RGB + */ +function hexToRgb(hex: Hex): RGB { + const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + if (!result) { + throw new Error(`Invalid hex color: ${hex}`); + } + return { + r: parseInt(result[1], 16), + g: parseInt(result[2], 16), + b: parseInt(result[3], 16), + }; +} + +/** + * Convert RGB to hex color + */ +function rgbToHex(c: RGB): Hex { + const toHex = (n: number) => { + const hex = Math.round(clamp(n, 0, 255)).toString(16); + return hex.length === 1 ? '0' + hex : hex; + }; + return `#${toHex(c.r)}${toHex(c.g)}${toHex(c.b)}` as Hex; +} + +/** + * Mix two RGB colors with interpolation factor t (0-1) + */ +function mix(a: RGB, b: RGB, t: number): RGB { + const clampedT = clamp(t, 0, 1); + return { + r: a.r + (b.r - a.r) * clampedT, + g: a.g + (b.g - a.g) * clampedT, + b: a.b + (b.b - a.b) * clampedT, + }; +} + +/** + * Build a color scaler for Pod Scores + * + * @param scores - Array of Pod Score values + * @param prevBounds - Optional previous bounds for smoothing + * @param opts - Optional configuration + * @returns ColorScaler object with toColor, toUnit, and bounds + */ +export function buildPodScoreColorScaler( + scores: number[], + prevBounds?: { low: number; high: number } | null, + opts?: ScalerOptions +): ColorScaler { + // Default options + const options: Required = { + lowerPct: opts?.lowerPct ?? 5, + upperPct: opts?.upperPct ?? 95, + smoothFactor: opts?.smoothFactor ?? 0, + bad: opts?.bad ?? '#91580D', + mid: opts?.mid ?? '#E8C15F', + good: opts?.good ?? '#A8E868', + }; + + // Filter out invalid values (NaN, Infinity) + const validScores = scores.filter(s => Number.isFinite(s)); + + // Calculate percentile bounds + let low: number; + let high: number; + + if (validScores.length === 0) { + // Fallback bounds for empty array + low = 0; + high = 1; + } else if (validScores.length === 1) { + // Single value - use it as both bounds with small range + low = validScores[0] - 0.5; + high = validScores[0] + 0.5; + } else { + // Calculate percentiles + low = percentile(validScores, options.lowerPct); + high = percentile(validScores, options.upperPct); + + // Ensure high > low + if (high <= low) { + high = low + 1; + } + } + + // Apply smoothing if previous bounds provided + if (prevBounds && options.smoothFactor > 0) { + low = smooth(prevBounds.low, low, options.smoothFactor); + high = smooth(prevBounds.high, high, options.smoothFactor); + + // Ensure smoothed high > smoothed low + if (high <= low) { + high = low + 1; + } + } + + // Pre-calculate RGB values for color stops + const badRgb = hexToRgb(options.bad); + const midRgb = hexToRgb(options.mid); + const goodRgb = hexToRgb(options.good); + + /** + * Convert score to normalized 0-1 value + */ + const toUnit = (score: number): number => { + if (!Number.isFinite(score)) return 0; + const clamped = clamp(score, low, high); + return (clamped - low) / (high - low); + }; + + /** + * Convert score to hex color + */ + const toColor = (score: number): Hex => { + const unit = toUnit(score); + + // Three-stop gradient: bad → mid → good + // 0.0 - 0.5: bad to mid + // 0.5 - 1.0: mid to good + let rgb: RGB; + if (unit <= 0.5) { + // Interpolate from bad to mid + const t = unit / 0.5; + rgb = mix(badRgb, midRgb, t); + } else { + // Interpolate from mid to good + const t = (unit - 0.5) / 0.5; + rgb = mix(midRgb, goodRgb, t); + } + + return rgbToHex(rgb); + }; + + return { + toColor, + toUnit, + bounds: { low, high }, + }; +} From 4b7759662fe0b4340efad975aab13f9a30fa43b0 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Sat, 22 Nov 2025 17:30:23 +0300 Subject: [PATCH 48/54] Fix lint errors --- src/components/MarketChartOverlay.tsx | 82 +-- src/components/PodScoreGradientLegend.tsx | 7 +- src/components/charts/ScatterChart.tsx | 684 ++++++++++----------- src/pages/Market.tsx | 50 +- src/pages/market/actions/CreateListing.tsx | 2 +- src/pages/market/actions/CreateOrder.tsx | 4 +- src/pages/market/actions/FillListing.tsx | 14 +- src/utils/podScore.ts | 14 +- src/utils/podScoreColorScaler.ts | 44 +- 9 files changed, 453 insertions(+), 448 deletions(-) diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx index 2d6f49a2b..7cff02962 100644 --- a/src/components/MarketChartOverlay.tsx +++ b/src/components/MarketChartOverlay.tsx @@ -1,6 +1,6 @@ import { TokenValue } from "@/classes/TokenValue"; -import { buildPodScoreColorScaler } from "@/utils/podScoreColorScaler"; import { calculatePodScore } from "@/utils/podScore"; +import { buildPodScoreColorScaler } from "@/utils/podScoreColorScaler"; import { Chart } from "chart.js"; import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; @@ -77,30 +77,33 @@ const MarketChartOverlay = React.memo( ({ overlayParams, chartRef, visible, harvestableIndex, marketListingScores = [] }) => { const [dimensions, setDimensions] = useState(null); const containerRef = useRef(null); - + // Note: Throttling removed to ensure immediate updates during price changes // Performance is acceptable without throttling due to optimized calculations const throttledOverlayParams = overlayParams; // Optimized pixel position calculator with minimal validation overhead - const calculatePixelPosition = useCallback((dataValue: number, axis: "x" | "y"): number | null => { - const chart = chartRef.current; - if (!chart?.scales) return null; + const calculatePixelPosition = useCallback( + (dataValue: number, axis: "x" | "y"): number | null => { + const chart = chartRef.current; + if (!chart?.scales) return null; - const scale = chart.scales[axis]; - if (!scale?.getPixelForValue || scale.min === undefined || scale.max === undefined) { - return null; - } + const scale = chart.scales[axis]; + if (!scale?.getPixelForValue || scale.min === undefined || scale.max === undefined) { + return null; + } - // Fast clamp without Math.max/min for better performance - const clampedValue = dataValue < scale.min ? scale.min : dataValue > scale.max ? scale.max : dataValue; + // Fast clamp without Math.max/min for better performance + const clampedValue = dataValue < scale.min ? scale.min : dataValue > scale.max ? scale.max : dataValue; - try { - return scale.getPixelForValue(clampedValue); - } catch { - return null; - } - }, [chartRef]); + try { + return scale.getPixelForValue(clampedValue); + } catch { + return null; + } + }, + [chartRef], + ); // Optimized dimension calculator with minimal object creation const getChartDimensions = useCallback((): ChartDimensions | null => { @@ -108,16 +111,20 @@ const MarketChartOverlay = React.memo( if (!chart?.chartArea) return null; const { left, top, right, bottom } = chart.chartArea; - + // Fast type validation - if (typeof left !== 'number' || typeof top !== 'number' || - typeof right !== 'number' || typeof bottom !== 'number') { + if ( + typeof left !== "number" || + typeof top !== "number" || + typeof right !== "number" || + typeof bottom !== "number" + ) { return null; } const width = right - left; const height = bottom - top; - + if (width <= 0 || height <= 0) return null; return { left, top, width, height, bottom, right }; @@ -128,13 +135,13 @@ const MarketChartOverlay = React.memo( let timeoutId: NodeJS.Timeout; let animationFrameId: number | null = null; let resizeObserver: ResizeObserver | null = null; - + const updateDimensions = () => { // Use requestAnimationFrame to sync with browser's repaint cycle if (animationFrameId !== null) { cancelAnimationFrame(animationFrameId); } - + animationFrameId = requestAnimationFrame(() => { const newDimensions = getChartDimensions(); if (newDimensions) { @@ -156,7 +163,7 @@ const MarketChartOverlay = React.memo( }, DIMENSION_UPDATE_DELAY_MS); // Single ResizeObserver for all resize events - if (typeof ResizeObserver !== 'undefined') { + if (typeof ResizeObserver !== "undefined") { resizeObserver = new ResizeObserver(debouncedUpdate); const parent = containerRef.current?.parentElement; if (parent) { @@ -171,7 +178,7 @@ const MarketChartOverlay = React.memo( // Fallback window resize listener with passive flag for better performance window.addEventListener("resize", debouncedUpdate, { passive: true }); - + // Listen to Chart.js resize events for immediate sync const chart = chartRef.current; if (chart) { @@ -270,7 +277,7 @@ const MarketChartOverlay = React.memo( const { scales } = chartRef.current; const { x: xScale, y: yScale } = scales; - + if (!xScale?.max || !yScale?.max) return null; // Optimized place in line calculation - avoid intermediate TokenValue object @@ -280,7 +287,7 @@ const MarketChartOverlay = React.memo( // Batch calculations for better performance const startX = placeInLineNum / MILLION; const endX = (placeInLineNum + plot.amount.toNumber()) / MILLION; - + // Fast validation if (startX < 0 || endX <= startX) return null; @@ -323,18 +330,17 @@ const MarketChartOverlay = React.memo( // Pre-allocate array for better performance const rectangles: Array = []; - + // Use for loop for better performance than map/filter chain for (let i = 0; i < plots.length; i++) { const plot = plots[i]; const rect = calculatePlotRectangle(plot, pricePerPod); - + if (rect) { // Calculate place in line for Pod Score const placeInLineNum = plot.startIndex.toNumber() - harvestableIndex.toNumber(); // Use placeInLine in millions for consistent scaling with market listings const podScore = calculatePodScore(pricePerPod, placeInLineNum / MILLION); - rectangles.push({ x: rect.x, @@ -374,12 +380,12 @@ const MarketChartOverlay = React.memo( // Build color scaler from both market listings and overlay plot scores // This ensures overlay colors are relative to existing market conditions const plotScores = memoizedRectangles - .map(rect => rect.podScore) + .map((rect) => rect.podScore) .filter((score): score is number => score !== undefined); - + // Combine market listing scores with overlay plot scores for consistent scaling const allScores = [...marketListingScores, ...plotScores]; - + const colorScaler = buildPodScoreColorScaler(allScores); return ( @@ -400,9 +406,8 @@ const MarketChartOverlay = React.memo( const centerY = clampedPriceY; // Get dynamic color based on Pod Score, fallback to default if undefined - const fillColor = rect.podScore !== undefined - ? colorScaler.toColor(rect.podScore) - : SELL_OVERLAY_COLORS.plotFill; + const fillColor = + rect.podScore !== undefined ? colorScaler.toColor(rect.podScore) : SELL_OVERLAY_COLORS.plotFill; return (
( } return ( -
+
{overlayContent}
); diff --git a/src/components/PodScoreGradientLegend.tsx b/src/components/PodScoreGradientLegend.tsx index e609e1255..aabea14ec 100644 --- a/src/components/PodScoreGradientLegend.tsx +++ b/src/components/PodScoreGradientLegend.tsx @@ -1,5 +1,5 @@ -import TooltipSimple from "./TooltipSimple"; import { cn } from "@/utils/utils"; +import TooltipSimple from "./TooltipSimple"; interface PodScoreGradientLegendProps { learnMoreUrl?: string; @@ -17,7 +17,10 @@ export default function PodScoreGradientLegend({ }: PodScoreGradientLegendProps) { return (
{/* Row 1: Title and info icon */}
diff --git a/src/components/charts/ScatterChart.tsx b/src/components/charts/ScatterChart.tsx index 1ba30d3fe..2d619e090 100644 --- a/src/components/charts/ScatterChart.tsx +++ b/src/components/charts/ScatterChart.tsx @@ -99,395 +99,395 @@ const ScatterChart = React.memo( // Expose chart instance through ref React.useImperativeHandle(ref, () => chartRef.current as Chart, []); - useEffect(() => { - activeIndexRef.current = activeIndex; - if (chartRef.current) { - chartRef.current.update("none"); // Disable animations during update - } - }, [activeIndex]); + useEffect(() => { + activeIndexRef.current = activeIndex; + if (chartRef.current) { + chartRef.current.update("none"); // Disable animations during update + } + }, [activeIndex]); + + const [yTickMin, yTickMax] = useMemo(() => { + // If custom min/max are provided, use those + if (yOptions.min !== undefined && yOptions.max !== undefined) { + // Even with custom ranges, ensure 1.0 is visible if showReferenceLineAtOne is true + if (horizontalReferenceLines.some((line) => line.value === 1)) { + const hasOne = yOptions.min <= 1 && yOptions.max >= 1; + if (!hasOne) { + // If 1.0 is not in range, adjust the range to include it + if (useLogarithmicScale) { + // For logarithmic scale, we need to ensure we maintain the ratio + // but include 1.0 in the range + if (yOptions.min > 1) { + return [0.7, Math.max(yOptions.max, 1.5)]; // Include 1.0 with padding below + } else if (yOptions.max < 1) { + return [Math.min(yOptions.min, 0.7), 1.5]; // Include 1.0 with padding above + } + } else { + // For linear scale, just expand the range to include 1.0 + if (yOptions.min > 1) { + return [0.9, Math.max(yOptions.max, 1.1)]; // Include 1.0 with padding + } else if (yOptions.max < 1) { + return [Math.min(yOptions.min, 0.9), 1.1]; // Include 1.0 with padding + } + } + } + } + return [yOptions.min, yOptions.max]; + } + + // Otherwise calculate based on data + const maxData = Number.MIN_SAFE_INTEGER; //data.reduce((acc, next) => Math.max(acc, next.y), Number.MIN_SAFE_INTEGER); + const minData = Number.MAX_SAFE_INTEGER; //data.reduce((acc, next) => Math.min(acc, next.y), Number.MAX_SAFE_INTEGER); + + const maxTick = maxData === minData && maxData === 0 ? 1 : maxData; + let minTick = Math.max(0, minData - (maxData - minData) * 0.1); + if (minTick === maxData) { + minTick = maxData * 0.99; + } + + // For logarithmic scale, ensure minTick is positive + if (useLogarithmicScale && minTick <= 0) { + minTick = 0.000001; // Small positive value + } - const [yTickMin, yTickMax] = useMemo(() => { - // If custom min/max are provided, use those - if (yOptions.min !== undefined && yOptions.max !== undefined) { - // Even with custom ranges, ensure 1.0 is visible if showReferenceLineAtOne is true + // Use custom min/max if provided + let finalMin = yOptions.min !== undefined ? yOptions.min : minTick; + let finalMax = yOptions.max !== undefined ? yOptions.max : maxTick; + + // Ensure 1.0 is visible if there's a reference line at 1.0 if (horizontalReferenceLines.some((line) => line.value === 1)) { - const hasOne = yOptions.min <= 1 && yOptions.max >= 1; - if (!hasOne) { - // If 1.0 is not in range, adjust the range to include it + if (finalMin > 1 || finalMax < 1) { if (useLogarithmicScale) { // For logarithmic scale, we need to ensure we maintain the ratio - // but include 1.0 in the range - if (yOptions.min > 1) { - return [0.7, Math.max(yOptions.max, 1.5)]; // Include 1.0 with padding below - } else if (yOptions.max < 1) { - return [Math.min(yOptions.min, 0.7), 1.5]; // Include 1.0 with padding above + if (finalMin > 1) { + finalMin = 0.7; // Include 1.0 with padding below + finalMax = Math.max(finalMax, 1.5); + } else if (finalMax < 1) { + finalMin = Math.min(finalMin, 0.7); + finalMax = 1.5; // Include 1.0 with padding above } } else { // For linear scale, just expand the range to include 1.0 - if (yOptions.min > 1) { - return [0.9, Math.max(yOptions.max, 1.1)]; // Include 1.0 with padding - } else if (yOptions.max < 1) { - return [Math.min(yOptions.min, 0.9), 1.1]; // Include 1.0 with padding + if (finalMin > 1) { + finalMin = 0.9; // Include 1.0 with padding + finalMax = Math.max(finalMax, 1.1); + } else if (finalMax < 1) { + finalMin = Math.min(finalMin, 0.9); + finalMax = 1.1; // Include 1.0 with padding } } } } - return [yOptions.min, yOptions.max]; - } - // Otherwise calculate based on data - const maxData = Number.MIN_SAFE_INTEGER; //data.reduce((acc, next) => Math.max(acc, next.y), Number.MIN_SAFE_INTEGER); - const minData = Number.MAX_SAFE_INTEGER; //data.reduce((acc, next) => Math.min(acc, next.y), Number.MAX_SAFE_INTEGER); - - const maxTick = maxData === minData && maxData === 0 ? 1 : maxData; - let minTick = Math.max(0, minData - (maxData - minData) * 0.1); - if (minTick === maxData) { - minTick = maxData * 0.99; - } + return [finalMin, finalMax]; + }, [data, useLogarithmicScale, yOptions.min, yOptions.max, horizontalReferenceLines]); + + const chartData = useCallback( + (ctx: CanvasRenderingContext2D | null): ChartData => { + return { + datasets: data.map(({ label, data, color, pointStyle, pointRadius }) => ({ + label, + data, + // Use per-point colors if available, otherwise use dataset color + backgroundColor: data.map((point: any) => point.color || color), + pointStyle, + pointRadius: pointRadius, + hoverRadius: pointRadius + 1, + })), + }; + }, + [data], + ); - // For logarithmic scale, ensure minTick is positive - if (useLogarithmicScale && minTick <= 0) { - minTick = 0.000001; // Small positive value - } + const verticalLinePlugin: Plugin = useMemo( + () => ({ + id: "customVerticalLine", + afterDraw: (chart: Chart) => { + const ctx = chart.ctx; + const activeIndex = activeIndexRef.current; + if (ctx) { + ctx.save(); + ctx.setLineDash([4, 4]); + + // Draw the vertical line for the active element (hovered point) + const activeElements = chart.getActiveElements(); + if (activeElements.length > 0) { + const activeElement = activeElements[0]; + const datasetIndex = activeElement.datasetIndex; + const index = activeElement.index; + const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; + + if (dataPoint) { + const { x } = dataPoint.getProps(["x"], true); + ctx.beginPath(); + ctx.moveTo(x, chart.chartArea.top); + ctx.lineTo(x, chart.chartArea.bottom); + ctx.strokeStyle = "black"; + ctx.lineWidth = 1.5; + ctx.stroke(); + } + } - // Use custom min/max if provided - let finalMin = yOptions.min !== undefined ? yOptions.min : minTick; - let finalMax = yOptions.max !== undefined ? yOptions.max : maxTick; - - // Ensure 1.0 is visible if there's a reference line at 1.0 - if (horizontalReferenceLines.some((line) => line.value === 1)) { - if (finalMin > 1 || finalMax < 1) { - if (useLogarithmicScale) { - // For logarithmic scale, we need to ensure we maintain the ratio - if (finalMin > 1) { - finalMin = 0.7; // Include 1.0 with padding below - finalMax = Math.max(finalMax, 1.5); - } else if (finalMax < 1) { - finalMin = Math.min(finalMin, 0.7); - finalMax = 1.5; // Include 1.0 with padding above + ctx.restore(); } - } else { - // For linear scale, just expand the range to include 1.0 - if (finalMin > 1) { - finalMin = 0.9; // Include 1.0 with padding - finalMax = Math.max(finalMax, 1.1); - } else if (finalMax < 1) { - finalMin = Math.min(finalMin, 0.9); - finalMax = 1.1; // Include 1.0 with padding - } - } - } - } + }, + }), + [], + ); - return [finalMin, finalMax]; - }, [data, useLogarithmicScale, yOptions.min, yOptions.max, horizontalReferenceLines]); + const horizontalReferenceLinePlugin: Plugin = useMemo( + () => ({ + id: "horizontalReferenceLine", + afterDraw: (chart: Chart) => { + const ctx = chart.ctx; + if (!ctx || horizontalReferenceLines.length === 0) return; - const chartData = useCallback( - (ctx: CanvasRenderingContext2D | null): ChartData => { - return { - datasets: data.map(({ label, data, color, pointStyle, pointRadius }) => ({ - label, - data, - // Use per-point colors if available, otherwise use dataset color - backgroundColor: data.map((point: any) => point.color || color), - pointStyle, - pointRadius: pointRadius, - hoverRadius: pointRadius + 1, - })), - }; - }, - [data], - ); - - const verticalLinePlugin: Plugin = useMemo( - () => ({ - id: "customVerticalLine", - afterDraw: (chart: Chart) => { - const ctx = chart.ctx; - const activeIndex = activeIndexRef.current; - if (ctx) { ctx.save(); - ctx.setLineDash([4, 4]); - // Draw the vertical line for the active element (hovered point) - const activeElements = chart.getActiveElements(); - if (activeElements.length > 0) { - const activeElement = activeElements[0]; - const datasetIndex = activeElement.datasetIndex; - const index = activeElement.index; - const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; + // Draw each horizontal reference line + horizontalReferenceLines.forEach((line) => { + const yScale = chart.scales.y; + const y = yScale.getPixelForValue(line.value); - if (dataPoint) { - const { x } = dataPoint.getProps(["x"], true); + // Only draw if within chart area + if (y >= chart.chartArea.top && y <= chart.chartArea.bottom) { ctx.beginPath(); - ctx.moveTo(x, chart.chartArea.top); - ctx.lineTo(x, chart.chartArea.bottom); - ctx.strokeStyle = "black"; - ctx.lineWidth = 1.5; + if (line.dash) { + ctx.setLineDash(line.dash); + } else { + ctx.setLineDash([4, 4]); // Default dash pattern + } + ctx.moveTo(chart.chartArea.left, y); + ctx.lineTo(chart.chartArea.right, y); + ctx.strokeStyle = line.color; + ctx.lineWidth = 1; ctx.stroke(); - } - } - ctx.restore(); - } - }, - }), - [], - ); + // Reset dash pattern + ctx.setLineDash([]); - const horizontalReferenceLinePlugin: Plugin = useMemo( - () => ({ - id: "horizontalReferenceLine", - afterDraw: (chart: Chart) => { - const ctx = chart.ctx; - if (!ctx || horizontalReferenceLines.length === 0) return; + // Add label if provided + if (line.label) { + ctx.font = "12px Arial"; + ctx.fillStyle = line.color; - ctx.save(); + // Measure text width to ensure it doesn't get cut off + const textWidth = ctx.measureText(line.label).width; + const rightPadding = 10; // Padding from right edge - // Draw each horizontal reference line - horizontalReferenceLines.forEach((line) => { - const yScale = chart.scales.y; - const y = yScale.getPixelForValue(line.value); + // Position the label at the right side of the chart with padding + const labelX = chart.chartArea.right - textWidth - rightPadding; + const labelPadding = 5; // Padding between line and text + const textHeight = 12; // Approximate height of the text - // Only draw if within chart area - if (y >= chart.chartArea.top && y <= chart.chartArea.bottom) { - ctx.beginPath(); - if (line.dash) { - ctx.setLineDash(line.dash); - } else { - ctx.setLineDash([4, 4]); // Default dash pattern - } - ctx.moveTo(chart.chartArea.left, y); - ctx.lineTo(chart.chartArea.right, y); - ctx.strokeStyle = line.color; - ctx.lineWidth = 1; - ctx.stroke(); + // Check if the line is too close to the top of the chart + const isNearTop = y - textHeight - labelPadding < chart.chartArea.top; + + // Check if the line is too close to the bottom of the chart + const isNearBottom = y + textHeight + labelPadding > chart.chartArea.bottom; + + // Set text alignment + ctx.textAlign = "left"; - // Reset dash pattern - ctx.setLineDash([]); - - // Add label if provided - if (line.label) { - ctx.font = "12px Arial"; - ctx.fillStyle = line.color; - - // Measure text width to ensure it doesn't get cut off - const textWidth = ctx.measureText(line.label).width; - const rightPadding = 10; // Padding from right edge - - // Position the label at the right side of the chart with padding - const labelX = chart.chartArea.right - textWidth - rightPadding; - const labelPadding = 5; // Padding between line and text - const textHeight = 12; // Approximate height of the text - - // Check if the line is too close to the top of the chart - const isNearTop = y - textHeight - labelPadding < chart.chartArea.top; - - // Check if the line is too close to the bottom of the chart - const isNearBottom = y + textHeight + labelPadding > chart.chartArea.bottom; - - // Set text alignment - ctx.textAlign = "left"; - - // Position the label based on proximity to chart edges - // biome-ignore lint/suspicious/noExplicitAny: - let labelY: any; - ctx.textBaseline = "bottom"; - labelY = y - labelPadding; - if (isNearTop) { - ctx.textBaseline = "top"; - labelY = y + labelPadding; - } else if (isNearBottom) { + // Position the label based on proximity to chart edges + // biome-ignore lint/suspicious/noExplicitAny: + let labelY: any; + ctx.textBaseline = "bottom"; labelY = y - labelPadding; + if (isNearTop) { + ctx.textBaseline = "top"; + labelY = y + labelPadding; + } else if (isNearBottom) { + labelY = y - labelPadding; + } + ctx.fillText(line.label, labelX, labelY); } - ctx.fillText(line.label, labelX, labelY); } - } - }); - - ctx.restore(); - }, - }), - [horizontalReferenceLines], - ); + }); - const selectionPointPlugin: Plugin = useMemo( - () => ({ - id: "customSelectPoint", - afterDraw: (chart: Chart) => { - const ctx = chart.ctx; - if (!ctx) return; - - // Define the function to draw the selection point - const drawSelectionPoint = ( - x: number, - y: number, - pointRadius: number, - pointStyle: PointStyle, - color?: string, - ) => { - // console.info("🚀 ~ drawSelectionPoint ~ pointRadius:", pointRadius); - ctx.save(); - ctx.fillStyle = "transparent"; - ctx.strokeStyle = color || "black"; - ctx.lineWidth = !!color ? 2 : 1; - - const rectWidth = pointRadius * 2.5 || 10; - const rectHeight = pointRadius * 2.5 || 10; - const cornerRadius = pointStyle === "rect" ? 0 : pointRadius * 1.5; - - ctx.beginPath(); - ctx.moveTo(x - rectWidth / 2 + cornerRadius, y - rectHeight / 2); - ctx.lineTo(x + rectWidth / 2 - cornerRadius, y - rectHeight / 2); - ctx.quadraticCurveTo( - x + rectWidth / 2, - y - rectHeight / 2, - x + rectWidth / 2, - y - rectHeight / 2 + cornerRadius, - ); - ctx.lineTo(x + rectWidth / 2, y + rectHeight / 2 - cornerRadius); - ctx.quadraticCurveTo( - x + rectWidth / 2, - y + rectHeight / 2, - x + rectWidth / 2 - cornerRadius, - y + rectHeight / 2, - ); - ctx.lineTo(x - rectWidth / 2 + cornerRadius, y + rectHeight / 2); - ctx.quadraticCurveTo( - x - rectWidth / 2, - y + rectHeight / 2, - x - rectWidth / 2, - y + rectHeight / 2 - cornerRadius, - ); - ctx.lineTo(x - rectWidth / 2, y - rectHeight / 2 + cornerRadius); - ctx.quadraticCurveTo( - x - rectWidth / 2, - y - rectHeight / 2, - x - rectWidth / 2 + cornerRadius, - y - rectHeight / 2, - ); - ctx.closePath(); - - ctx.fill(); - ctx.stroke(); ctx.restore(); - }; + }, + }), + [horizontalReferenceLines], + ); - // Draw selection point for the hovered data point - const activeElements = chart.getActiveElements(); - for (const activeElement of activeElements) { - const datasetIndex = activeElement.datasetIndex; - const index = activeElement.index; - const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; - - if (dataPoint) { - const { x, y } = dataPoint.getProps(["x", "y"], true); - const pointRadius = dataPoint.options.radius; - const pointStyle = dataPoint.options.pointStyle; - drawSelectionPoint(x, y, pointRadius, pointStyle); - } - } + const selectionPointPlugin: Plugin = useMemo( + () => ({ + id: "customSelectPoint", + afterDraw: (chart: Chart) => { + const ctx = chart.ctx; + if (!ctx) return; + + // Define the function to draw the selection point + const drawSelectionPoint = ( + x: number, + y: number, + pointRadius: number, + pointStyle: PointStyle, + color?: string, + ) => { + // console.info("🚀 ~ drawSelectionPoint ~ pointRadius:", pointRadius); + ctx.save(); + ctx.fillStyle = "transparent"; + ctx.strokeStyle = color || "black"; + ctx.lineWidth = !!color ? 2 : 1; + + const rectWidth = pointRadius * 2.5 || 10; + const rectHeight = pointRadius * 2.5 || 10; + const cornerRadius = pointStyle === "rect" ? 0 : pointRadius * 1.5; - // Draw the circle around currently selected element (i.e. clicked) - const [selectedPointDatasetIndex, selectedPointIndex] = selectedPointRef.current || []; - if (selectedPointDatasetIndex !== undefined && selectedPointIndex !== undefined) { - const dataPoint = chart.getDatasetMeta(selectedPointDatasetIndex).data[selectedPointIndex]; - if (dataPoint) { - const { x, y } = dataPoint.getProps(["x", "y"], true); - const pointRadius = dataPoint.options.radius; - const pointStyle = dataPoint.options.pointStyle; - drawSelectionPoint(x, y, pointRadius, pointStyle, "#387F5C"); - } - } - }, - }), - [selectedPointRef.current], - ); + ctx.beginPath(); + ctx.moveTo(x - rectWidth / 2 + cornerRadius, y - rectHeight / 2); + ctx.lineTo(x + rectWidth / 2 - cornerRadius, y - rectHeight / 2); + ctx.quadraticCurveTo( + x + rectWidth / 2, + y - rectHeight / 2, + x + rectWidth / 2, + y - rectHeight / 2 + cornerRadius, + ); + ctx.lineTo(x + rectWidth / 2, y + rectHeight / 2 - cornerRadius); + ctx.quadraticCurveTo( + x + rectWidth / 2, + y + rectHeight / 2, + x + rectWidth / 2 - cornerRadius, + y + rectHeight / 2, + ); + ctx.lineTo(x - rectWidth / 2 + cornerRadius, y + rectHeight / 2); + ctx.quadraticCurveTo( + x - rectWidth / 2, + y + rectHeight / 2, + x - rectWidth / 2, + y + rectHeight / 2 - cornerRadius, + ); + ctx.lineTo(x - rectWidth / 2, y - rectHeight / 2 + cornerRadius); + ctx.quadraticCurveTo( + x - rectWidth / 2, + y - rectHeight / 2, + x - rectWidth / 2 + cornerRadius, + y - rectHeight / 2, + ); + ctx.closePath(); + + ctx.fill(); + ctx.stroke(); + ctx.restore(); + }; - const selectionCallbackPlugin: Plugin = useMemo( - () => ({ - id: "selectionCallback", - afterDraw: (chart: Chart) => { - onMouseOver?.(chart.getActiveElements()[0]?.index); - }, - }), - [], - ); + // Draw selection point for the hovered data point + const activeElements = chart.getActiveElements(); + for (const activeElement of activeElements) { + const datasetIndex = activeElement.datasetIndex; + const index = activeElement.index; + const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; + + if (dataPoint) { + const { x, y } = dataPoint.getProps(["x", "y"], true); + const pointRadius = dataPoint.options.radius; + const pointStyle = dataPoint.options.pointStyle; + drawSelectionPoint(x, y, pointRadius, pointStyle); + } + } - const chartOptions: ChartOptions = useMemo(() => { - return { - maintainAspectRatio: false, - responsive: true, - plugins: { - tooltip: toolTipOptions || {}, - legend: { - display: false, + // Draw the circle around currently selected element (i.e. clicked) + const [selectedPointDatasetIndex, selectedPointIndex] = selectedPointRef.current || []; + if (selectedPointDatasetIndex !== undefined && selectedPointIndex !== undefined) { + const dataPoint = chart.getDatasetMeta(selectedPointDatasetIndex).data[selectedPointIndex]; + if (dataPoint) { + const { x, y } = dataPoint.getProps(["x", "y"], true); + const pointRadius = dataPoint.options.radius; + const pointStyle = dataPoint.options.pointStyle; + drawSelectionPoint(x, y, pointRadius, pointStyle, "#387F5C"); + } + } }, - }, - layout: { - // Tick padding must be uniform, undo it here - padding: { - left: 0, - right: 0, - top: 0, - bottom: 0, + }), + [selectedPointRef.current], + ); + + const selectionCallbackPlugin: Plugin = useMemo( + () => ({ + id: "selectionCallback", + afterDraw: (chart: Chart) => { + onMouseOver?.(chart.getActiveElements()[0]?.index); }, - }, - interaction: { - mode: "nearest", - intersect: false, - }, - scales: { - x: { - title: { - display: true, - text: xOptions.label || "", + }), + [], + ); + + const chartOptions: ChartOptions = useMemo(() => { + return { + maintainAspectRatio: false, + responsive: true, + plugins: { + tooltip: toolTipOptions || {}, + legend: { + display: false, }, - type: "linear", - position: "bottom", - min: xOptions.min, - max: Math.round((xOptions.max / 10) * 10), // round to nearest 10 so auto tick generation works - ticks: { - padding: 0, - callback: (val) => `${Number(val)}M`, + }, + layout: { + // Tick padding must be uniform, undo it here + padding: { + left: 0, + right: 0, + top: 0, + bottom: 0, }, }, - y: { - title: { - display: true, - text: yOptions.label || "", + interaction: { + mode: "nearest", + intersect: false, + }, + scales: { + x: { + title: { + display: true, + text: xOptions.label || "", + }, + type: "linear", + position: "bottom", + min: xOptions.min, + max: Math.round((xOptions.max / 10) * 10), // round to nearest 10 so auto tick generation works + ticks: { + padding: 0, + callback: (val) => `${Number(val)}M`, + }, }, - ticks: { - padding: 0, + y: { + title: { + display: true, + text: yOptions.label || "", + }, + ticks: { + padding: 0, + }, }, }, - }, - onClick: (event, activeElements, chart) => { - const activeElement = activeElements[0]; - selectedPointRef.current = [activeElement.datasetIndex, activeElement.index]; - onPointClick?.(event, activeElements, chart); - }, - }; - }, [data, yTickMin, yTickMax, valueFormatter, useLogarithmicScale, customValueTransform]); + onClick: (event, activeElements, chart) => { + const activeElement = activeElements[0]; + selectedPointRef.current = [activeElement.datasetIndex, activeElement.index]; + onPointClick?.(event, activeElements, chart); + }, + }; + }, [data, yTickMin, yTickMax, valueFormatter, useLogarithmicScale, customValueTransform]); - const allPlugins = useMemo( - () => [verticalLinePlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], - [verticalLinePlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], - ); + const allPlugins = useMemo( + () => [verticalLinePlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], + [verticalLinePlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], + ); - const chartDimensions = useMemo(() => { - if (size === "small") { - return { - w: 3, - h: 1, - }; - } else { - return { - w: 6, - h: 2, - }; - } - }, [size]); + const chartDimensions = useMemo(() => { + if (size === "small") { + return { + w: 3, + h: 1, + }; + } else { + return { + w: 6, + h: 2, + }; + } + }, [size]); return ( point.podScore) + .map((point) => point.podScore) .filter((score): score is number => score !== undefined); // Build color scaler from listing scores const colorScaler = buildPodScoreColorScaler(listingScores); // Map through listings and apply colors - result[1].data = result[1].data.map(point => ({ + result[1].data = result[1].data.map((point) => ({ ...point, - color: point.podScore !== undefined - ? colorScaler.toColor(point.podScore) - : "#e0b57d", // Fallback color for invalid Pod Scores + color: point.podScore !== undefined ? colorScaler.toColor(point.podScore) : "#e0b57d", // Fallback color for invalid Pod Scores })); return result; @@ -194,7 +192,7 @@ export function Market() { const harvestableIndex = useHarvestableIndex(); const podLineAsNumber = podLine.toNumber() / MILLION; const navHeight = useNavHeight(); - + // Overlay state and chart ref const chartRef = useRef(null); const [overlayParams, setOverlayParams] = useState(null); @@ -212,15 +210,15 @@ export function Market() { // Extract Pod Scores from market listings for overlay color scaling const marketListingScores = useMemo(() => { if (!scatterChartData || scatterChartData.length < 2) return []; - + // Listings are at index 1 in scatterChartData const listingsData = scatterChartData[1]; if (!listingsData?.data) return []; - + const scores = listingsData.data - .map(point => point.podScore) + .map((point) => point.podScore) .filter((score): score is number => score !== undefined); - + return scores; }, [scatterChartData]); @@ -229,7 +227,7 @@ export function Market() { const chartXMax = useMemo(() => { // Use podLineAsNumber if available, otherwise use a reasonable default const maxValue = podLineAsNumber > 0 ? podLineAsNumber : 50; // Default to 50 million - + // Ensure a minimum value for the chart to render properly return Math.max(maxValue, 1); // At least 1 million }, [podLineAsNumber]); @@ -300,13 +298,14 @@ export function Market() { return score.toFixed(2); } }; - - const podScoreRow = dataPoint.eventType === "LISTING" && dataPoint.podScore !== undefined - ? `
+ + const podScoreRow = + dataPoint.eventType === "LISTING" && dataPoint.podScore !== undefined + ? `
Pod Score: ${formatPodScore(dataPoint.podScore)}
` - : ''; + : ""; tooltipEl.innerHTML = `
@@ -470,18 +469,17 @@ export function Market() { onPointClick={onPointClick} toolTipOptions={toolTipOptions as TooltipOptions} /> - + {/* Gradient Legend - positioned in top-right corner */}
- +
- + )} - {viewMode === "buy" && id === "fill" && } + {viewMode === "buy" && id === "fill" && ( + + )} {viewMode === "sell" && id === "create" && ( )} diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 3603bb956..3f377e226 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -1,6 +1,7 @@ import settingsIcon from "@/assets/misc/Settings.svg"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; +import type { OverlayParams, PlotOverlayData } from "@/components/MarketChartOverlay"; import PodLineGraph from "@/components/PodLineGraph"; import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Button } from "@/components/ui/Button"; @@ -29,7 +30,6 @@ import { useLocation, useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; -import type { OverlayParams, PlotOverlayData } from "@/components/MarketChartOverlay"; interface PodListingData { plot: Plot; diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 1ae79943b..383d38819 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -2,6 +2,7 @@ import podIcon from "@/assets/protocol/Pod.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; +import type { OverlayParams } from "@/components/MarketChartOverlay"; import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SlippageButton from "@/components/SlippageButton"; @@ -37,7 +38,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { useAccount } from "wagmi"; -import type { OverlayParams } from "@/components/MarketChartOverlay"; // Constants const PRICE_PER_POD_CONFIG = { @@ -176,7 +176,7 @@ export default function CreateOrder({ onOverlayParamsChange }: CreateOrderProps // Throttle overlay parameter updates for better performance const overlayUpdateTimerRef = useRef(null); - + useEffect(() => { // Clear any pending update if (overlayUpdateTimerRef.current) { diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index 5fc3299e6..d3fb1c49f 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -2,6 +2,7 @@ import podIcon from "@/assets/protocol/Pod.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; +import type { OverlayParams } from "@/components/MarketChartOverlay"; import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SlippageButton from "@/components/SlippageButton"; @@ -43,7 +44,6 @@ import { useNavigate, useSearchParams } from "react-router-dom"; import { toast } from "sonner"; import { Address, encodeFunctionData } from "viem"; import { useAccount } from "wagmi"; -import type { OverlayParams } from "@/components/MarketChartOverlay"; // Configuration constants const PRICE_PER_POD_CONFIG = { @@ -64,7 +64,7 @@ const TextAdornment = ({ text, className }: { text: string; className?: string } /** * Calculates Pod Score for a listing based on price per pod and place in line. * Formula: (1/pricePerPod - 1) / placeInLine * 1e6 - * + * * @param pricePerPod - Price per pod (must be > 0) * @param placeInLine - Position in harvest queue in millions (must be > 0) * @returns Pod Score value, or undefined for invalid inputs @@ -77,7 +77,7 @@ const calculatePodScore = (pricePerPod: number, placeInLine: number): number | u // Calculate return: (1/pricePerPod - 1) const returnValue = 1 / pricePerPod - 1; - + // Calculate Pod Score: return / placeInLine * 1e6 const podScore = (returnValue / placeInLine) * 1e6; @@ -216,12 +216,12 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps // Calculate Pod Score for the selected listing const listingPodScore = useMemo(() => { if (!selectedListing) return undefined; - + const price = TokenValue.fromBlockchain(selectedListing.pricePerPod, mainToken.decimals).toNumber(); const placeInLine = TokenValue.fromBlockchain(selectedListing.index, PODS.decimals) .sub(harvestableIndex) .toNumber(); - + // Use placeInLine in millions for consistent scaling return calculatePodScore(price, placeInLine / 1_000_000); }, [selectedListing, mainToken.decimals, harvestableIndex]); @@ -764,9 +764,9 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps

Pod Score:{" "} - {listingPodScore !== undefined + {listingPodScore !== undefined ? formatter.number(listingPodScore, { minDecimals: 2, maxDecimals: 2 }) - : 'N/A'} + : "N/A"}

diff --git a/src/utils/podScore.ts b/src/utils/podScore.ts index 8d3e3584f..45cdc472a 100644 --- a/src/utils/podScore.ts +++ b/src/utils/podScore.ts @@ -1,6 +1,6 @@ /** * Pod Score Calculation Utility - * + * * Provides the Pod Score calculation function for evaluating pod listings. * Pod Score = (Return / Place in Line) * 1e6 * where Return = (1/pricePerPod - 1) @@ -8,9 +8,9 @@ /** * Calculate Pod Score for a pod listing - * + * * Formula: (1/pricePerPod - 1) / placeInLine * 1e6 - * + * * @param pricePerPod - Price per pod (must be > 0) * @param placeInLine - Position in harvest queue in millions (must be > 0) * @returns Pod Score value, or undefined for invalid inputs @@ -20,20 +20,20 @@ export const calculatePodScore = (pricePerPod: number, placeInLine: number): num if (pricePerPod <= 0 || placeInLine <= 0) { return undefined; } - + // Calculate return: (1/pricePerPod - 1) // When pricePerPod < 1.0: positive return (good deal) // When pricePerPod = 1.0: zero return (break even) // When pricePerPod > 1.0: negative return (bad deal) const returnValue = 1 / pricePerPod - 1; - + // Calculate Pod Score: return / placeInLine * 1e6 const podScore = (returnValue / placeInLine) * 1e6; - + // Filter out invalid results (NaN, Infinity) if (!Number.isFinite(podScore)) { return undefined; } - + return podScore; }; diff --git a/src/utils/podScoreColorScaler.ts b/src/utils/podScoreColorScaler.ts index 594649cc8..232ba73af 100644 --- a/src/utils/podScoreColorScaler.ts +++ b/src/utils/podScoreColorScaler.ts @@ -1,6 +1,6 @@ /** * Pod Score Color Scaler Utility - * + * * Provides percentile-based color scaling for Pod Score visualization. * Maps scores to a three-stop gradient: brown (poor) → gold (average) → green (good) */ @@ -14,12 +14,12 @@ interface RGB { } interface ScalerOptions { - lowerPct?: number; // Default: 5 - upperPct?: number; // Default: 95 - smoothFactor?: number; // Default: 0 (no smoothing) - bad?: Hex; // Default: '#91580D' - mid?: Hex; // Default: '#E8C15F' - good?: Hex; // Default: '#A8E868' + lowerPct?: number; // Default: 5 + upperPct?: number; // Default: 95 + smoothFactor?: number; // Default: 0 (no smoothing) + bad?: Hex; // Default: '#91580D' + mid?: Hex; // Default: '#E8C15F' + good?: Hex; // Default: '#A8E868' } export interface ColorScaler { @@ -34,20 +34,20 @@ export interface ColorScaler { function percentile(values: number[], p: number): number { if (values.length === 0) return 0; if (values.length === 1) return values[0]; - + // Sort values in ascending order const sorted = [...values].sort((a, b) => a - b); - + // Calculate index (using linear interpolation) const index = (p / 100) * (sorted.length - 1); const lower = Math.floor(index); const upper = Math.ceil(index); const weight = index - lower; - + if (lower === upper) { return sorted[lower]; } - + return sorted[lower] * (1 - weight) + sorted[upper] * weight; } @@ -86,7 +86,7 @@ function hexToRgb(hex: Hex): RGB { function rgbToHex(c: RGB): Hex { const toHex = (n: number) => { const hex = Math.round(clamp(n, 0, 255)).toString(16); - return hex.length === 1 ? '0' + hex : hex; + return hex.length === 1 ? "0" + hex : hex; }; return `#${toHex(c.r)}${toHex(c.g)}${toHex(c.b)}` as Hex; } @@ -105,7 +105,7 @@ function mix(a: RGB, b: RGB, t: number): RGB { /** * Build a color scaler for Pod Scores - * + * * @param scores - Array of Pod Score values * @param prevBounds - Optional previous bounds for smoothing * @param opts - Optional configuration @@ -114,20 +114,20 @@ function mix(a: RGB, b: RGB, t: number): RGB { export function buildPodScoreColorScaler( scores: number[], prevBounds?: { low: number; high: number } | null, - opts?: ScalerOptions + opts?: ScalerOptions, ): ColorScaler { // Default options const options: Required = { lowerPct: opts?.lowerPct ?? 5, upperPct: opts?.upperPct ?? 95, smoothFactor: opts?.smoothFactor ?? 0, - bad: opts?.bad ?? '#91580D', - mid: opts?.mid ?? '#E8C15F', - good: opts?.good ?? '#A8E868', + bad: opts?.bad ?? "#91580D", + mid: opts?.mid ?? "#E8C15F", + good: opts?.good ?? "#A8E868", }; // Filter out invalid values (NaN, Infinity) - const validScores = scores.filter(s => Number.isFinite(s)); + const validScores = scores.filter((s) => Number.isFinite(s)); // Calculate percentile bounds let low: number; @@ -145,7 +145,7 @@ export function buildPodScoreColorScaler( // Calculate percentiles low = percentile(validScores, options.lowerPct); high = percentile(validScores, options.upperPct); - + // Ensure high > low if (high <= low) { high = low + 1; @@ -156,7 +156,7 @@ export function buildPodScoreColorScaler( if (prevBounds && options.smoothFactor > 0) { low = smooth(prevBounds.low, low, options.smoothFactor); high = smooth(prevBounds.high, high, options.smoothFactor); - + // Ensure smoothed high > smoothed low if (high <= low) { high = low + 1; @@ -182,7 +182,7 @@ export function buildPodScoreColorScaler( */ const toColor = (score: number): Hex => { const unit = toUnit(score); - + // Three-stop gradient: bad → mid → good // 0.0 - 0.5: bad to mid // 0.5 - 1.0: mid to good @@ -196,7 +196,7 @@ export function buildPodScoreColorScaler( const t = (unit - 0.5) / 0.5; rgb = mix(midRgb, goodRgb, t); } - + return rgbToHex(rgb); }; From fd685e905fbf606bdd2c9df95de17aa2622a9f6e Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Sun, 23 Nov 2025 19:16:52 +0300 Subject: [PATCH 49/54] Fix overlay calculations --- src/components/MarketChartOverlay.tsx | 202 ++++++++++++++++++++--- src/pages/Market.tsx | 5 +- src/pages/market/actions/FillListing.tsx | 26 ++- 3 files changed, 202 insertions(+), 31 deletions(-) diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx index 7cff02962..6966fcac0 100644 --- a/src/components/MarketChartOverlay.tsx +++ b/src/components/MarketChartOverlay.tsx @@ -133,21 +133,88 @@ const MarketChartOverlay = React.memo( // Optimized resize handling with single debounced handler useEffect(() => { let timeoutId: NodeJS.Timeout; + let retryTimeouts: NodeJS.Timeout[] = []; let animationFrameId: number | null = null; let resizeObserver: ResizeObserver | null = null; + let isMounted = true; + + // Check if chart is fully ready with all required properties + const isChartReady = (): boolean => { + const chart = chartRef.current; + if (!chart) return false; + + // Check canvas is in DOM (critical check to prevent ownerDocument errors) + if (!chart.canvas || !chart.canvas.ownerDocument) return false; + + // Check chartArea exists and has valid dimensions + if (!chart.chartArea) return false; + const { left, top, right, bottom } = chart.chartArea; + if ( + typeof left !== "number" || + typeof top !== "number" || + typeof right !== "number" || + typeof bottom !== "number" || + right - left <= 0 || + bottom - top <= 0 + ) { + return false; + } + + // Check scales exist and are ready + if (!chart.scales?.x || !chart.scales?.y) return false; + const xScale = chart.scales.x; + const yScale = chart.scales.y; + + // Check scales have required methods and valid ranges + if ( + typeof xScale.getPixelForValue !== "function" || + typeof yScale.getPixelForValue !== "function" || + xScale.min === undefined || + xScale.max === undefined || + yScale.min === undefined || + yScale.max === undefined + ) { + return false; + } + + return true; + }; const updateDimensions = () => { + if (!isMounted) return; + + const chart = chartRef.current; + + // Ensure Chart.js resizes first before getting dimensions + // Only resize if canvas is in DOM + if (chart?.canvas?.ownerDocument && isChartReady()) { + try { + chart.resize(); + } catch (error) { + // If resize fails, chart might be detached, skip resize + console.warn("Chart resize failed, canvas may be detached:", error); + } + } + // Use requestAnimationFrame to sync with browser's repaint cycle + // Double RAF ensures Chart.js has finished resizing and updated chartArea if (animationFrameId !== null) { cancelAnimationFrame(animationFrameId); } animationFrameId = requestAnimationFrame(() => { - const newDimensions = getChartDimensions(); - if (newDimensions) { - setDimensions(newDimensions); - } - animationFrameId = null; + // Second RAF to ensure Chart.js has updated chartArea after resize + requestAnimationFrame(() => { + if (!isMounted) return; + + // Try to get dimensions even if chart is not fully ready + // This ensures overlay can render when chartArea is available + const newDimensions = getChartDimensions(); + if (newDimensions) { + setDimensions(newDimensions); + } + animationFrameId = null; + }); }); }; @@ -156,11 +223,50 @@ const MarketChartOverlay = React.memo( timeoutId = setTimeout(updateDimensions, RESIZE_DEBOUNCE_MS); }; - // Initial update - const initialTimeout = setTimeout(() => { - const dimensions = getChartDimensions(); - if (dimensions) setDimensions(dimensions); - }, DIMENSION_UPDATE_DELAY_MS); + // Aggressive retry mechanism for direct link navigation + const tryUpdateDimensions = (attempt = 0, maxAttempts = 10) => { + if (!isMounted) return; + + if (isChartReady()) { + const chart = chartRef.current; + if (chart?.canvas?.ownerDocument) { + // Only update if canvas is in DOM + try { + chart.update("none"); + } catch (error) { + // If update fails, chart might be detached, skip update + console.warn("Chart update failed, canvas may be detached:", error); + } + } + + // Use triple RAF to ensure chart is fully rendered + requestAnimationFrame(() => { + requestAnimationFrame(() => { + requestAnimationFrame(() => { + if (!isMounted) return; + // Try to get dimensions even if chart is not fully ready + // This ensures overlay can render when chartArea is available + const newDimensions = getChartDimensions(); + if (newDimensions) { + setDimensions(newDimensions); + } else if (attempt < maxAttempts) { + // Retry if dimensions still not available + const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), 50); + retryTimeouts.push(timeout); + } + }); + }); + }); + } else if (attempt < maxAttempts) { + // Chart not ready, retry with exponential backoff + const delay = Math.min(50 * 1.5 ** attempt, 500); + const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), delay); + retryTimeouts.push(timeout); + } + }; + + // Start initial update attempts + tryUpdateDimensions(); // Single ResizeObserver for all resize events if (typeof ResizeObserver !== "undefined") { @@ -179,18 +285,19 @@ const MarketChartOverlay = React.memo( // Fallback window resize listener with passive flag for better performance window.addEventListener("resize", debouncedUpdate, { passive: true }); - // Listen to Chart.js resize events for immediate sync + // Initial resize to ensure chart is properly sized const chart = chartRef.current; if (chart) { - // Chart.js emits 'resize' event when chart dimensions change chart.resize(); // Force update after chart is ready updateDimensions(); } return () => { - clearTimeout(initialTimeout); + isMounted = false; clearTimeout(timeoutId); + retryTimeouts.forEach(clearTimeout); + retryTimeouts = []; if (animationFrameId !== null) { cancelAnimationFrame(animationFrameId); } @@ -202,10 +309,57 @@ const MarketChartOverlay = React.memo( // Update dimensions when overlay params or visibility changes useEffect(() => { if (visible && throttledOverlayParams) { - const newDimensions = getChartDimensions(); - if (newDimensions) { - setDimensions(newDimensions); - } + const tryUpdate = (attempt = 0, maxAttempts = 15) => { + const chart = chartRef.current; + + // Comprehensive chart readiness check + if ( + chart?.canvas?.ownerDocument && // Critical: canvas must be in DOM + chart?.chartArea && + chart.scales?.x && + chart.scales?.y && + typeof chart.chartArea.left === "number" && + typeof chart.chartArea.right === "number" && + typeof chart.chartArea.top === "number" && + typeof chart.chartArea.bottom === "number" && + chart.chartArea.right - chart.chartArea.left > 0 && + chart.chartArea.bottom - chart.chartArea.top > 0 && + typeof chart.scales.x.getPixelForValue === "function" && + typeof chart.scales.y.getPixelForValue === "function" && + chart.scales.x.min !== undefined && + chart.scales.x.max !== undefined && + chart.scales.y.min !== undefined && + chart.scales.y.max !== undefined + ) { + // Force chart update to ensure everything is synced + // Only update if canvas is in DOM + try { + chart.update("none"); + } catch (error) { + // If update fails, chart might be detached, but still try to get dimensions + console.warn("Chart update failed, canvas may be detached:", error); + } + + // Use triple RAF to ensure chart is fully rendered + // Continue with dimension update even if chart.update() failed + requestAnimationFrame(() => { + requestAnimationFrame(() => { + requestAnimationFrame(() => { + const newDimensions = getChartDimensions(); + if (newDimensions) { + setDimensions(newDimensions); + } + }); + }); + }); + } else if (attempt < maxAttempts) { + // Chart not ready, retry with exponential backoff + const delay = Math.min(50 * 1.3 ** attempt, 300); + setTimeout(() => tryUpdate(attempt + 1, maxAttempts), delay); + } + }; + + tryUpdate(); } }, [throttledOverlayParams, visible, getChartDimensions]); @@ -256,6 +410,7 @@ const MarketChartOverlay = React.memo( fill={BUY_OVERLAY_COLORS.shadedRegion} stroke={BUY_OVERLAY_COLORS.border} strokeWidth={1} + strokeDasharray="4 4" style={{ willChange: "auto", transition: "x 0.15s ease-out, y 0.15s ease-out, width 0.15s ease-out, height 0.15s ease-out", @@ -285,8 +440,9 @@ const MarketChartOverlay = React.memo( if (placeInLineNum < 0) return null; // Batch calculations for better performance + // Overlay should extend to the middle of the pod, not the end const startX = placeInLineNum / MILLION; - const endX = (placeInLineNum + plot.amount.toNumber()) / MILLION; + const endX = (placeInLineNum + plot.amount.toNumber() / 2) / MILLION; // Fast validation if (startX < 0 || endX <= startX) return null; @@ -390,7 +546,7 @@ const MarketChartOverlay = React.memo( return ( <> - {/* Horizontal price line - Tailwind + minimal inline styles */} + {/* Horizontal price line */}
( }} /> - {/* Selection boxes - Tailwind + minimal inline styles */} + {/* Selection boxes */} {memoizedRectangles.map((rect) => { const centerX = rect.x + (rect.width >> 1); // Bit shift for division by 2 const centerY = clampedPriceY; @@ -423,14 +579,14 @@ const MarketChartOverlay = React.memo( ); })} - {/* Vertical lines - Tailwind + minimal inline styles */} + {/* Vertical lines */} {memoizedRectangles.length > 0 && ( <>
> 1), // Pod'un ortası top, height: lineHeight, }} @@ -439,7 +595,7 @@ const MarketChartOverlay = React.memo( key="vertical-line-right" className={`${BASE_OVERLAY_CLASSES} ${TRANSITION_CLASSES} w-0 border-l border-dashed border-black`} style={{ - left: memoizedRectangles[lastRectIndex].x + memoizedRectangles[lastRectIndex].width, + left: memoizedRectangles[lastRectIndex].x + (memoizedRectangles[lastRectIndex].width >> 1), // Pod'un ortası top, height: lineHeight, }} diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 9dea8b359..2196bab0d 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -396,7 +396,10 @@ export function Market() { }); if (dataPoint.eventType === "LISTING") { - navigate(`/market/pods/buy/fill?listingId=${dataPoint.eventId}`); + // Include placeInLine in URL so FillListing can set it correctly + const placeInLine = dataPoint.placeInLine; + const placeInLineParam = placeInLine ? `&placeInLine=${placeInLine}` : ""; + navigate(`/market/pods/buy/fill?listingId=${dataPoint.eventId}${placeInLineParam}`); } else { navigate(`/market/pods/sell/fill?orderId=${dataPoint.eventId}`); } diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index d3fb1c49f..d3fa61534 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -123,6 +123,7 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps const navigate = useNavigate(); const [searchParams] = useSearchParams(); const listingId = searchParams.get("listingId"); + const placeInLineFromUrl = searchParams.get("placeInLine"); const filterTokens = useFilterTokens(); @@ -240,17 +241,28 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps setMaxPricePerPod(formattedPrice); setMaxPricePerPodInput(formattedPrice.toFixed(PRICE_PER_POD_CONFIG.DECIMALS)); - // Calculate listing's place in line - const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); - const placeInLine = listingIndex.sub(harvestableIndex).toNumber(); + // Use placeInLine from URL if available (from chart click), otherwise calculate from listing index + let placeInLine: number; + if (placeInLineFromUrl) { + // Use the exact place in line value from the chart (pod's actual place in line) + placeInLine = Number.parseInt(placeInLineFromUrl, 10); + if (Number.isNaN(placeInLine) || placeInLine <= 0) { + // Fallback to calculating from listing index if URL value is invalid + const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); + placeInLine = listingIndex.sub(harvestableIndex).toNumber(); + } + } else { + // Calculate listing's place in line from index (fallback for direct URL access) + const listingIndex = TokenValue.fromBlockchain(listing.index, PODS.decimals); + placeInLine = listingIndex.sub(harvestableIndex).toNumber(); + } - // Set max place in line to include this listing with a small margin + // Set max place in line to the exact pod's place in line (no margin needed since it's the exact value) // Clamp to valid range [0, maxPlace] - const margin = Math.max(1, Math.floor(maxPlace * PLACE_MARGIN_PERCENT)); - const maxPlaceValue = Math.min(maxPlace, Math.ceil(placeInLine + margin)); + const maxPlaceValue = Math.min(maxPlace, Math.max(0, placeInLine)); setMaxPlaceInLine(maxPlaceValue); setHasInitializedPlace(true); // Mark as initialized to prevent default value override - }, [listingId, allListings, maxPlace, mainToken.decimals, harvestableIndex]); + }, [listingId, allListings, maxPlace, mainToken.decimals, harvestableIndex, placeInLineFromUrl]); // Update overlay parameters when maxPricePerPod or maxPlaceInLine changes const overlayUpdateTimerRef = useRef(null); From 7ed7eeaa1febe24dec288b53f153521960a3b889 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 24 Nov 2025 14:58:16 +0300 Subject: [PATCH 50/54] Fix chart overlay resize issue --- src/components/MarketChartOverlay.tsx | 109 +++++++++++++++++++++++--- 1 file changed, 96 insertions(+), 13 deletions(-) diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx index 6966fcac0..d92ca079b 100644 --- a/src/components/MarketChartOverlay.tsx +++ b/src/components/MarketChartOverlay.tsx @@ -285,30 +285,110 @@ const MarketChartOverlay = React.memo( // Fallback window resize listener with passive flag for better performance window.addEventListener("resize", debouncedUpdate, { passive: true }); - // Initial resize to ensure chart is properly sized + // Listen to chart update events (zoom/pan/scale changes) const chart = chartRef.current; if (chart) { + // Listen to chart's update event to catch zoom/pan/scale changes + const handleChartUpdate = () => { + // Use RAF to ensure chart has finished updating + requestAnimationFrame(() => { + requestAnimationFrame(() => { + updateDimensions(); + }); + }); + }; + + // Chart.js doesn't have built-in event system, so we'll use a polling approach + // or listen to chart's internal update cycle + // For now, we'll add a MutationObserver on the canvas to detect changes + let lastScaleMin: { x: number | undefined; y: number | undefined } = { + x: chart.scales?.x?.min, + y: chart.scales?.y?.min, + }; + let lastScaleMax: { x: number | undefined; y: number | undefined } = { + x: chart.scales?.x?.max, + y: chart.scales?.y?.max, + }; + + // Poll for scale changes (zoom/pan) - Chart.js doesn't have built-in scale change events + const scaleCheckInterval = setInterval(() => { + if (!isMounted || !chartRef.current) { + clearInterval(scaleCheckInterval); + return; + } + + const currentChart = chartRef.current; + if (!currentChart?.scales?.x || !currentChart?.scales?.y) return; + + const currentXMin = currentChart.scales.x.min; + const currentXMax = currentChart.scales.x.max; + const currentYMin = currentChart.scales.y.min; + const currentYMax = currentChart.scales.y.max; + + // Check if scales have changed (zoom/pan) + if ( + currentXMin !== lastScaleMin.x || + currentXMax !== lastScaleMax.x || + currentYMin !== lastScaleMin.y || + currentYMax !== lastScaleMax.y + ) { + lastScaleMin = { x: currentXMin, y: currentYMin }; + lastScaleMax = { x: currentXMax, y: currentYMax }; + handleChartUpdate(); + } + }, 200); // Check every 200ms for better performance + chart.resize(); // Force update after chart is ready updateDimensions(); - } - return () => { - isMounted = false; - clearTimeout(timeoutId); - retryTimeouts.forEach(clearTimeout); - retryTimeouts = []; - if (animationFrameId !== null) { - cancelAnimationFrame(animationFrameId); - } - resizeObserver?.disconnect(); - window.removeEventListener("resize", debouncedUpdate); - }; + return () => { + isMounted = false; + clearInterval(scaleCheckInterval); + clearTimeout(timeoutId); + retryTimeouts.forEach(clearTimeout); + retryTimeouts = []; + if (animationFrameId !== null) { + cancelAnimationFrame(animationFrameId); + } + resizeObserver?.disconnect(); + window.removeEventListener("resize", debouncedUpdate); + }; + } else { + return () => { + isMounted = false; + clearTimeout(timeoutId); + retryTimeouts.forEach(clearTimeout); + retryTimeouts = []; + if (animationFrameId !== null) { + cancelAnimationFrame(animationFrameId); + } + resizeObserver?.disconnect(); + window.removeEventListener("resize", debouncedUpdate); + }; + } }, [getChartDimensions, chartRef]); // Update dimensions when overlay params or visibility changes useEffect(() => { if (visible && throttledOverlayParams) { + // Force immediate dimension update when overlay params change + // This ensures overlay position updates correctly when params change + const updateOnParamsChange = () => { + const chart = chartRef.current; + if (!chart?.chartArea) return; + + // Use RAF to ensure chart is ready + requestAnimationFrame(() => { + requestAnimationFrame(() => { + const newDimensions = getChartDimensions(); + if (newDimensions) { + setDimensions(newDimensions); + } + }); + }); + }; + const tryUpdate = (attempt = 0, maxAttempts = 15) => { const chart = chartRef.current; @@ -359,6 +439,9 @@ const MarketChartOverlay = React.memo( } }; + // Try immediate update first + updateOnParamsChange(); + // Also try comprehensive update tryUpdate(); } }, [throttledOverlayParams, visible, getChartDimensions]); From a41ec45bb7385b10de5868c8d1f225c08c80b529 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Wed, 10 Dec 2025 01:36:35 +0300 Subject: [PATCH 51/54] Set marketplace default action to buy>sell --- src/pages/Market.tsx | 15 +++++--- src/pages/market/MarketModeSelect.tsx | 53 +++++++++------------------ 2 files changed, 27 insertions(+), 41 deletions(-) diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 2196bab0d..242306b60 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -425,7 +425,9 @@ export function Market() { [navigate], ); - const viewMode = mode; + // Default to buy/fill when no mode is selected + const viewMode = mode || "buy"; + const viewAction = id || (viewMode === "buy" ? "fill" : "create"); return ( <> @@ -482,7 +484,8 @@ export function Market() { overlayParams={overlayParams} chartRef={chartRef} visible={ - (mode === "buy" && (id === "create" || id === "fill")) || (mode === "sell" && id === "create") + (viewMode === "buy" && (viewAction === "create" || viewAction === "fill")) || + (viewMode === "sell" && viewAction === "create") } harvestableIndex={harvestableIndex} marketListingScores={marketListingScores} @@ -518,16 +521,16 @@ export function Market() {
- {viewMode === "buy" && id === "create" && ( + {viewMode === "buy" && viewAction === "create" && ( )} - {viewMode === "buy" && id === "fill" && ( + {viewMode === "buy" && viewAction === "fill" && ( )} - {viewMode === "sell" && id === "create" && ( + {viewMode === "sell" && viewAction === "create" && ( )} - {viewMode === "sell" && id === "fill" && } + {viewMode === "sell" && viewAction === "fill" && }
diff --git a/src/pages/market/MarketModeSelect.tsx b/src/pages/market/MarketModeSelect.tsx index 30ecd6e0b..fd03cd506 100644 --- a/src/pages/market/MarketModeSelect.tsx +++ b/src/pages/market/MarketModeSelect.tsx @@ -36,19 +36,16 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel const navigate = useNavigate(); // Derive current state from URL params - const { mainTab, secondaryTab, mainTabValue, secondaryTabValue } = useMemo(() => { + const { mainTab, secondaryTab, secondaryTabValue } = useMemo(() => { const validMode = mode === "buy" || mode === "sell" ? (mode as MarketMode) : undefined; const validAction = id === "create" || id === "fill" ? (id as MarketAction) : undefined; - // Only use default mode if a valid mode exists, otherwise leave undefined - const currentMode = validMode; const defaultAction = validMode ? DEFAULT_ACTION_BY_MODE[validMode] : undefined; const currentAction = validAction ?? defaultAction; return { mainTab: validMode, secondaryTab: validAction ?? (validMode ? DEFAULT_ACTION_BY_MODE[validMode] : undefined), - mainTabValue: currentMode ?? DEFAULT_MODE, // Fallback for Tabs component secondaryTabValue: currentAction ?? DEFAULT_ACTION_BY_MODE[DEFAULT_MODE], // Fallback for Tabs component }; }, [mode, id]); @@ -73,20 +70,18 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel const handleSecondaryChange = useCallback( (v: string) => { - if (!mainTab) { - return; - } + const currentMode = mainTab ?? DEFAULT_MODE; // Track create/fill tab changes trackSimpleEvent(ANALYTICS_EVENTS.MARKET.CREATE_FILL_TAB_CLICK, { previous_action: secondaryTab, new_action: v, - market_mode: mainTab, + market_mode: currentMode, }); if (v === "create") { - navigate(`/market/pods/${mainTab}/create`); + navigate(`/market/pods/${currentMode}/create`); } else if (v === "fill") { - navigate(`/market/pods/${mainTab}/fill`); + navigate(`/market/pods/${currentMode}/fill`); } onSecondarySelectionChange?.(v); }, @@ -95,36 +90,24 @@ export default function MarketModeSelect({ onMainSelectionChange, onSecondarySel return (
- + Buy Pods Sell Pods - {mainTab ? ( - <> - - - - {ACTION_LABELS[mainTab].create} - {ACTION_LABELS[mainTab].fill} - - - - ) : ( -
-
- Select Buy Pods -
- or Sell Pods -
-
- )} + + + + {ACTION_LABELS[mainTab ?? DEFAULT_MODE].create} + {ACTION_LABELS[mainTab ?? DEFAULT_MODE].fill} + +
); } From 8042f2e6a33114fa3c0fa1e0cc5aca8ade8d7cf4 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Thu, 11 Dec 2025 11:46:29 +0300 Subject: [PATCH 52/54] Push generated files --- .gitignore | 2 +- src/components/MarketChartOverlay.tsx | 483 +- src/generated/contractHooks.ts | 19583 ++++++++++++++++++++++ src/generated/gql/exchange/gql.ts | 52 + src/generated/gql/exchange/graphql.ts | 4558 +++++ src/generated/gql/exchange/index.ts | 1 + src/generated/gql/pinto/gql.ts | 58 + src/generated/gql/pinto/graphql.ts | 4861 ++++++ src/generated/gql/pinto/index.ts | 1 + src/generated/gql/pintostalk/gql.ts | 184 + src/generated/gql/pintostalk/graphql.ts | 15183 +++++++++++++++++ src/generated/gql/pintostalk/index.ts | 1 + src/pages/Market.tsx | 16 +- 13 files changed, 44744 insertions(+), 239 deletions(-) create mode 100644 src/generated/contractHooks.ts create mode 100644 src/generated/gql/exchange/gql.ts create mode 100644 src/generated/gql/exchange/graphql.ts create mode 100644 src/generated/gql/exchange/index.ts create mode 100644 src/generated/gql/pinto/gql.ts create mode 100644 src/generated/gql/pinto/graphql.ts create mode 100644 src/generated/gql/pinto/index.ts create mode 100644 src/generated/gql/pintostalk/gql.ts create mode 100644 src/generated/gql/pintostalk/graphql.ts create mode 100644 src/generated/gql/pintostalk/index.ts diff --git a/.gitignore b/.gitignore index 9c20e1990..89d4cdf7c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ node_modules dist dist-ssr *.local -src/generated +# src/generated # Editor directories and files diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx index d92ca079b..f385162ee 100644 --- a/src/components/MarketChartOverlay.tsx +++ b/src/components/MarketChartOverlay.tsx @@ -78,6 +78,10 @@ const MarketChartOverlay = React.memo( const [dimensions, setDimensions] = useState(null); const containerRef = useRef(null); + useEffect(() => { + console.log("Dimensions", dimensions); + }, [dimensions]) + // Note: Throttling removed to ensure immediate updates during price changes // Performance is acceptable without throttling due to optimized calculations const throttledOverlayParams = overlayParams; @@ -88,6 +92,9 @@ const MarketChartOverlay = React.memo( const chart = chartRef.current; if (!chart?.scales) return null; + console.log("Data Value", dataValue); + console.log("Axis", axis); + const scale = chart.scales[axis]; if (!scale?.getPixelForValue || scale.min === undefined || scale.max === undefined) { return null; @@ -131,243 +138,243 @@ const MarketChartOverlay = React.memo( }, [chartRef]); // Optimized resize handling with single debounced handler - useEffect(() => { - let timeoutId: NodeJS.Timeout; - let retryTimeouts: NodeJS.Timeout[] = []; - let animationFrameId: number | null = null; - let resizeObserver: ResizeObserver | null = null; - let isMounted = true; - - // Check if chart is fully ready with all required properties - const isChartReady = (): boolean => { - const chart = chartRef.current; - if (!chart) return false; - - // Check canvas is in DOM (critical check to prevent ownerDocument errors) - if (!chart.canvas || !chart.canvas.ownerDocument) return false; - - // Check chartArea exists and has valid dimensions - if (!chart.chartArea) return false; - const { left, top, right, bottom } = chart.chartArea; - if ( - typeof left !== "number" || - typeof top !== "number" || - typeof right !== "number" || - typeof bottom !== "number" || - right - left <= 0 || - bottom - top <= 0 - ) { - return false; - } - - // Check scales exist and are ready - if (!chart.scales?.x || !chart.scales?.y) return false; - const xScale = chart.scales.x; - const yScale = chart.scales.y; - - // Check scales have required methods and valid ranges - if ( - typeof xScale.getPixelForValue !== "function" || - typeof yScale.getPixelForValue !== "function" || - xScale.min === undefined || - xScale.max === undefined || - yScale.min === undefined || - yScale.max === undefined - ) { - return false; - } - - return true; - }; - - const updateDimensions = () => { - if (!isMounted) return; - - const chart = chartRef.current; - - // Ensure Chart.js resizes first before getting dimensions - // Only resize if canvas is in DOM - if (chart?.canvas?.ownerDocument && isChartReady()) { - try { - chart.resize(); - } catch (error) { - // If resize fails, chart might be detached, skip resize - console.warn("Chart resize failed, canvas may be detached:", error); - } - } - - // Use requestAnimationFrame to sync with browser's repaint cycle - // Double RAF ensures Chart.js has finished resizing and updated chartArea - if (animationFrameId !== null) { - cancelAnimationFrame(animationFrameId); - } - - animationFrameId = requestAnimationFrame(() => { - // Second RAF to ensure Chart.js has updated chartArea after resize - requestAnimationFrame(() => { - if (!isMounted) return; - - // Try to get dimensions even if chart is not fully ready - // This ensures overlay can render when chartArea is available - const newDimensions = getChartDimensions(); - if (newDimensions) { - setDimensions(newDimensions); - } - animationFrameId = null; - }); - }); - }; - - const debouncedUpdate = () => { - clearTimeout(timeoutId); - timeoutId = setTimeout(updateDimensions, RESIZE_DEBOUNCE_MS); - }; - - // Aggressive retry mechanism for direct link navigation - const tryUpdateDimensions = (attempt = 0, maxAttempts = 10) => { - if (!isMounted) return; - - if (isChartReady()) { - const chart = chartRef.current; - if (chart?.canvas?.ownerDocument) { - // Only update if canvas is in DOM - try { - chart.update("none"); - } catch (error) { - // If update fails, chart might be detached, skip update - console.warn("Chart update failed, canvas may be detached:", error); - } - } - - // Use triple RAF to ensure chart is fully rendered - requestAnimationFrame(() => { - requestAnimationFrame(() => { - requestAnimationFrame(() => { - if (!isMounted) return; - // Try to get dimensions even if chart is not fully ready - // This ensures overlay can render when chartArea is available - const newDimensions = getChartDimensions(); - if (newDimensions) { - setDimensions(newDimensions); - } else if (attempt < maxAttempts) { - // Retry if dimensions still not available - const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), 50); - retryTimeouts.push(timeout); - } - }); - }); - }); - } else if (attempt < maxAttempts) { - // Chart not ready, retry with exponential backoff - const delay = Math.min(50 * 1.5 ** attempt, 500); - const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), delay); - retryTimeouts.push(timeout); - } - }; - - // Start initial update attempts - tryUpdateDimensions(); - - // Single ResizeObserver for all resize events - if (typeof ResizeObserver !== "undefined") { - resizeObserver = new ResizeObserver(debouncedUpdate); - const parent = containerRef.current?.parentElement; - if (parent) { - resizeObserver.observe(parent); - } - // Also observe the chart canvas itself for more accurate updates - const chart = chartRef.current; - if (chart?.canvas) { - resizeObserver.observe(chart.canvas); - } - } - - // Fallback window resize listener with passive flag for better performance - window.addEventListener("resize", debouncedUpdate, { passive: true }); - - // Listen to chart update events (zoom/pan/scale changes) - const chart = chartRef.current; - if (chart) { - // Listen to chart's update event to catch zoom/pan/scale changes - const handleChartUpdate = () => { - // Use RAF to ensure chart has finished updating - requestAnimationFrame(() => { - requestAnimationFrame(() => { - updateDimensions(); - }); - }); - }; - - // Chart.js doesn't have built-in event system, so we'll use a polling approach - // or listen to chart's internal update cycle - // For now, we'll add a MutationObserver on the canvas to detect changes - let lastScaleMin: { x: number | undefined; y: number | undefined } = { - x: chart.scales?.x?.min, - y: chart.scales?.y?.min, - }; - let lastScaleMax: { x: number | undefined; y: number | undefined } = { - x: chart.scales?.x?.max, - y: chart.scales?.y?.max, - }; - - // Poll for scale changes (zoom/pan) - Chart.js doesn't have built-in scale change events - const scaleCheckInterval = setInterval(() => { - if (!isMounted || !chartRef.current) { - clearInterval(scaleCheckInterval); - return; - } - - const currentChart = chartRef.current; - if (!currentChart?.scales?.x || !currentChart?.scales?.y) return; - - const currentXMin = currentChart.scales.x.min; - const currentXMax = currentChart.scales.x.max; - const currentYMin = currentChart.scales.y.min; - const currentYMax = currentChart.scales.y.max; - - // Check if scales have changed (zoom/pan) - if ( - currentXMin !== lastScaleMin.x || - currentXMax !== lastScaleMax.x || - currentYMin !== lastScaleMin.y || - currentYMax !== lastScaleMax.y - ) { - lastScaleMin = { x: currentXMin, y: currentYMin }; - lastScaleMax = { x: currentXMax, y: currentYMax }; - handleChartUpdate(); - } - }, 200); // Check every 200ms for better performance - - chart.resize(); - // Force update after chart is ready - updateDimensions(); - - return () => { - isMounted = false; - clearInterval(scaleCheckInterval); - clearTimeout(timeoutId); - retryTimeouts.forEach(clearTimeout); - retryTimeouts = []; - if (animationFrameId !== null) { - cancelAnimationFrame(animationFrameId); - } - resizeObserver?.disconnect(); - window.removeEventListener("resize", debouncedUpdate); - }; - } else { - return () => { - isMounted = false; - clearTimeout(timeoutId); - retryTimeouts.forEach(clearTimeout); - retryTimeouts = []; - if (animationFrameId !== null) { - cancelAnimationFrame(animationFrameId); - } - resizeObserver?.disconnect(); - window.removeEventListener("resize", debouncedUpdate); - }; - } - }, [getChartDimensions, chartRef]); + // useEffect(() => { + // let timeoutId: NodeJS.Timeout; + // let retryTimeouts: NodeJS.Timeout[] = []; + // let animationFrameId: number | null = null; + // let resizeObserver: ResizeObserver | null = null; + // let isMounted = true; + + // // Check if chart is fully ready with all required properties + // const isChartReady = (): boolean => { + // const chart = chartRef.current; + // if (!chart) return false; + + // // Check canvas is in DOM (critical check to prevent ownerDocument errors) + // if (!chart.canvas || !chart.canvas.ownerDocument) return false; + + // // Check chartArea exists and has valid dimensions + // if (!chart.chartArea) return false; + // const { left, top, right, bottom } = chart.chartArea; + // if ( + // typeof left !== "number" || + // typeof top !== "number" || + // typeof right !== "number" || + // typeof bottom !== "number" || + // right - left <= 0 || + // bottom - top <= 0 + // ) { + // return false; + // } + + // // Check scales exist and are ready + // if (!chart.scales?.x || !chart.scales?.y) return false; + // const xScale = chart.scales.x; + // const yScale = chart.scales.y; + + // // Check scales have required methods and valid ranges + // if ( + // typeof xScale.getPixelForValue !== "function" || + // typeof yScale.getPixelForValue !== "function" || + // xScale.min === undefined || + // xScale.max === undefined || + // yScale.min === undefined || + // yScale.max === undefined + // ) { + // return false; + // } + + // return true; + // }; + + // const updateDimensions = () => { + // if (!isMounted) return; + + // const chart = chartRef.current; + + // // Ensure Chart.js resizes first before getting dimensions + // // Only resize if canvas is in DOM + // if (chart?.canvas?.ownerDocument && isChartReady()) { + // try { + // chart.resize(); + // } catch (error) { + // // If resize fails, chart might be detached, skip resize + // console.warn("Chart resize failed, canvas may be detached:", error); + // } + // } + + // // Use requestAnimationFrame to sync with browser's repaint cycle + // // Double RAF ensures Chart.js has finished resizing and updated chartArea + // if (animationFrameId !== null) { + // cancelAnimationFrame(animationFrameId); + // } + + // animationFrameId = requestAnimationFrame(() => { + // // Second RAF to ensure Chart.js has updated chartArea after resize + // requestAnimationFrame(() => { + // if (!isMounted) return; + + // // Try to get dimensions even if chart is not fully ready + // // This ensures overlay can render when chartArea is available + // const newDimensions = getChartDimensions(); + // if (newDimensions) { + // setDimensions(newDimensions); + // } + // animationFrameId = null; + // }); + // }); + // }; + + // const debouncedUpdate = () => { + // clearTimeout(timeoutId); + // timeoutId = setTimeout(updateDimensions, RESIZE_DEBOUNCE_MS); + // }; + + // // Aggressive retry mechanism for direct link navigation + // const tryUpdateDimensions = (attempt = 0, maxAttempts = 10) => { + // if (!isMounted) return; + + // if (isChartReady()) { + // const chart = chartRef.current; + // if (chart?.canvas?.ownerDocument) { + // // Only update if canvas is in DOM + // try { + // chart.update("none"); + // } catch (error) { + // // If update fails, chart might be detached, skip update + // console.warn("Chart update failed, canvas may be detached:", error); + // } + // } + + // // Use triple RAF to ensure chart is fully rendered + // requestAnimationFrame(() => { + // requestAnimationFrame(() => { + // requestAnimationFrame(() => { + // if (!isMounted) return; + // // Try to get dimensions even if chart is not fully ready + // // This ensures overlay can render when chartArea is available + // const newDimensions = getChartDimensions(); + // if (newDimensions) { + // setDimensions(newDimensions); + // } else if (attempt < maxAttempts) { + // // Retry if dimensions still not available + // const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), 50); + // retryTimeouts.push(timeout); + // } + // }); + // }); + // }); + // } else if (attempt < maxAttempts) { + // // Chart not ready, retry with exponential backoff + // const delay = Math.min(50 * 1.5 ** attempt, 500); + // const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), delay); + // retryTimeouts.push(timeout); + // } + // }; + + // // Start initial update attempts + // tryUpdateDimensions(); + + // // Single ResizeObserver for all resize events + // if (typeof ResizeObserver !== "undefined") { + // resizeObserver = new ResizeObserver(debouncedUpdate); + // const parent = containerRef.current?.parentElement; + // if (parent) { + // resizeObserver.observe(parent); + // } + // // Also observe the chart canvas itself for more accurate updates + // const chart = chartRef.current; + // if (chart?.canvas) { + // resizeObserver.observe(chart.canvas); + // } + // } + + // // Fallback window resize listener with passive flag for better performance + // window.addEventListener("resize", debouncedUpdate, { passive: true }); + + // // Listen to chart update events (zoom/pan/scale changes) + // const chart = chartRef.current; + // if (chart) { + // // Listen to chart's update event to catch zoom/pan/scale changes + // const handleChartUpdate = () => { + // // Use RAF to ensure chart has finished updating + // requestAnimationFrame(() => { + // requestAnimationFrame(() => { + // updateDimensions(); + // }); + // }); + // }; + + // // Chart.js doesn't have built-in event system, so we'll use a polling approach + // // or listen to chart's internal update cycle + // // For now, we'll add a MutationObserver on the canvas to detect changes + // let lastScaleMin: { x: number | undefined; y: number | undefined } = { + // x: chart.scales?.x?.min, + // y: chart.scales?.y?.min, + // }; + // let lastScaleMax: { x: number | undefined; y: number | undefined } = { + // x: chart.scales?.x?.max, + // y: chart.scales?.y?.max, + // }; + + // // Poll for scale changes (zoom/pan) - Chart.js doesn't have built-in scale change events + // const scaleCheckInterval = setInterval(() => { + // if (!isMounted || !chartRef.current) { + // clearInterval(scaleCheckInterval); + // return; + // } + + // const currentChart = chartRef.current; + // if (!currentChart?.scales?.x || !currentChart?.scales?.y) return; + + // const currentXMin = currentChart.scales.x.min; + // const currentXMax = currentChart.scales.x.max; + // const currentYMin = currentChart.scales.y.min; + // const currentYMax = currentChart.scales.y.max; + + // // Check if scales have changed (zoom/pan) + // if ( + // currentXMin !== lastScaleMin.x || + // currentXMax !== lastScaleMax.x || + // currentYMin !== lastScaleMin.y || + // currentYMax !== lastScaleMax.y + // ) { + // lastScaleMin = { x: currentXMin, y: currentYMin }; + // lastScaleMax = { x: currentXMax, y: currentYMax }; + // handleChartUpdate(); + // } + // }, 200); // Check every 200ms for better performance + + // chart.resize(); + // // Force update after chart is ready + // updateDimensions(); + + // return () => { + // isMounted = false; + // clearInterval(scaleCheckInterval); + // clearTimeout(timeoutId); + // retryTimeouts.forEach(clearTimeout); + // retryTimeouts = []; + // if (animationFrameId !== null) { + // cancelAnimationFrame(animationFrameId); + // } + // resizeObserver?.disconnect(); + // window.removeEventListener("resize", debouncedUpdate); + // }; + // } else { + // return () => { + // isMounted = false; + // clearTimeout(timeoutId); + // retryTimeouts.forEach(clearTimeout); + // retryTimeouts = []; + // if (animationFrameId !== null) { + // cancelAnimationFrame(animationFrameId); + // } + // resizeObserver?.disconnect(); + // window.removeEventListener("resize", debouncedUpdate); + // }; + // } + // }, [getChartDimensions, chartRef]); // Update dimensions when overlay params or visibility changes useEffect(() => { @@ -383,6 +390,7 @@ const MarketChartOverlay = React.memo( requestAnimationFrame(() => { const newDimensions = getChartDimensions(); if (newDimensions) { + // console.log("New Dimensions from update on params change: ", newDimensions); setDimensions(newDimensions); } }); @@ -426,6 +434,7 @@ const MarketChartOverlay = React.memo( requestAnimationFrame(() => { requestAnimationFrame(() => { const newDimensions = getChartDimensions(); + // console.log("New Dimensions from try update: ", newDimensions); if (newDimensions) { setDimensions(newDimensions); } diff --git a/src/generated/contractHooks.ts b/src/generated/contractHooks.ts new file mode 100644 index 000000000..6b1086fdc --- /dev/null +++ b/src/generated/contractHooks.ts @@ -0,0 +1,19583 @@ +import { + createUseReadContract, + createUseWriteContract, + createUseSimulateContract, + createUseWatchContractEvent, +} from 'wagmi/codegen' + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// beanstalk +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const beanstalkAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Pause', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'timePassed', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Unpause', + }, + { + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + type: 'function', + inputs: [], + name: 'claimOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: 'owner_', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'ownerCandidate', + outputs: [ + { name: 'ownerCandidate_', internalType: 'address', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_functionSelector', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'facetAddress', + outputs: [ + { name: 'facetAddress_', internalType: 'address', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'facetAddresses', + outputs: [ + { name: 'facetAddresses_', internalType: 'address[]', type: 'address[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_facet', internalType: 'address', type: 'address' }], + name: 'facetFunctionSelectors', + outputs: [ + { + name: 'facetFunctionSelectors_', + internalType: 'bytes4[]', + type: 'bytes4[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'facets', + outputs: [ + { + name: 'facets_', + internalType: 'struct IDiamondLoupe.Facet[]', + type: 'tuple[]', + components: [ + { name: 'facetAddress', internalType: 'address', type: 'address' }, + { + name: 'functionSelectors', + internalType: 'bytes4[]', + type: 'bytes4[]', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: '_diamondCut', + internalType: 'struct IDiamondCut.FacetCut[]', + type: 'tuple[]', + components: [ + { name: 'facetAddress', internalType: 'address', type: 'address' }, + { + name: 'action', + internalType: 'enum IDiamondCut.FacetCutAction', + type: 'uint8', + }, + { + name: 'functionSelectors', + internalType: 'bytes4[]', + type: 'bytes4[]', + }, + ], + indexed: false, + }, + { + name: '_init', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_calldata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DiamondCut', + }, + { + type: 'function', + inputs: [ + { + name: '_diamondCut', + internalType: 'struct IDiamondCut.FacetCut[]', + type: 'tuple[]', + components: [ + { name: 'facetAddress', internalType: 'address', type: 'address' }, + { + name: 'action', + internalType: 'enum IDiamondCut.FacetCutAction', + type: 'uint8', + }, + { + name: 'functionSelectors', + internalType: 'bytes4[]', + type: 'bytes4[]', + }, + ], + }, + { name: '_init', internalType: 'address', type: 'address' }, + { name: '_calldata', internalType: 'bytes', type: 'bytes' }, + ], + name: 'diamondCut', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'error', + inputs: [{ name: 'target', internalType: 'address', type: 'address' }], + name: 'AddressEmptyCode', + }, + { + type: 'error', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'AddressInsufficientBalance', + }, + { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' }, + { + type: 'error', + inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }], + name: 'ECDSAInvalidSignatureLength', + }, + { + type: 'error', + inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }], + name: 'ECDSAInvalidSignatureS', + }, + { type: 'error', inputs: [], name: 'FailedInnerCall' }, + { + type: 'error', + inputs: [{ name: 'value', internalType: 'uint256', type: 'uint256' }], + name: 'SafeCastOverflowedUintToInt', + }, + { + type: 'error', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'SafeERC20FailedOperation', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'blueprintHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'CancelBlueprint', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'contract IERC20', + type: 'address', + indexed: true, + }, + { name: 'delta', internalType: 'int256', type: 'int256', indexed: false }, + ], + name: 'InternalBalanceChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'requisition', + internalType: 'struct LibTractor.Requisition', + type: 'tuple', + components: [ + { + name: 'blueprint', + internalType: 'struct LibTractor.Blueprint', + type: 'tuple', + components: [ + { name: 'publisher', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'operatorPasteInstrs', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'maxNonce', internalType: 'uint256', type: 'uint256' }, + { name: 'startTime', internalType: 'uint256', type: 'uint256' }, + { name: 'endTime', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'blueprintHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + ], + name: 'PublishRequisition', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'fromMode', + internalType: 'enum LibTransfer.From', + type: 'uint8', + indexed: false, + }, + { + name: 'toMode', + internalType: 'enum LibTransfer.To', + type: 'uint8', + indexed: false, + }, + ], + name: 'TokenTransferred', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'publisher', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'blueprintHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasleft', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Tractor', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'publisher', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'blueprintHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasleft', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TractorExecutionBegan', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'TractorVersionSet', + }, + { + type: 'function', + inputs: [ + { + name: 'requisition', + internalType: 'struct LibTractor.Requisition', + type: 'tuple', + components: [ + { + name: 'blueprint', + internalType: 'struct LibTractor.Blueprint', + type: 'tuple', + components: [ + { name: 'publisher', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'operatorPasteInstrs', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'maxNonce', internalType: 'uint256', type: 'uint256' }, + { name: 'startTime', internalType: 'uint256', type: 'uint256' }, + { name: 'endTime', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'blueprintHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'cancelBlueprint', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'blueprint', + internalType: 'struct LibTractor.Blueprint', + type: 'tuple', + components: [ + { name: 'publisher', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'operatorPasteInstrs', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'maxNonce', internalType: 'uint256', type: 'uint256' }, + { name: 'startTime', internalType: 'uint256', type: 'uint256' }, + { name: 'endTime', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + name: 'getBlueprintHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'blueprintHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'getBlueprintNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'counterId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'getCounter', + outputs: [{ name: 'count', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getCurrentBlueprintHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'counterId', internalType: 'bytes32', type: 'bytes32' }], + name: 'getPublisherCounter', + outputs: [{ name: 'count', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTractorVersion', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'operator', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'requisition', + internalType: 'struct LibTractor.Requisition', + type: 'tuple', + components: [ + { + name: 'blueprint', + internalType: 'struct LibTractor.Blueprint', + type: 'tuple', + components: [ + { name: 'publisher', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'operatorPasteInstrs', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'maxNonce', internalType: 'uint256', type: 'uint256' }, + { name: 'startTime', internalType: 'uint256', type: 'uint256' }, + { name: 'endTime', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'blueprintHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'publishRequisition', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'sendTokenToInternalBalance', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'requisition', + internalType: 'struct LibTractor.Requisition', + type: 'tuple', + components: [ + { + name: 'blueprint', + internalType: 'struct LibTractor.Blueprint', + type: 'tuple', + components: [ + { name: 'publisher', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'operatorPasteInstrs', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + { name: 'maxNonce', internalType: 'uint256', type: 'uint256' }, + { name: 'startTime', internalType: 'uint256', type: 'uint256' }, + { name: 'endTime', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'blueprintHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'operatorData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'tractor', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'tractorUser', + outputs: [{ name: '', internalType: 'address payable', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'counterId', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'updateType', + internalType: 'enum LibTractor.CounterUpdateType', + type: 'uint8', + }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'updatePublisherCounter', + outputs: [{ name: 'count', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'version', internalType: 'string', type: 'string' }], + name: 'updateTractorVersion', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC1155', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'batchTransferERC1155', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC1155', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferERC1155', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC721', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferERC721', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'spender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'contract IERC20', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TokenApproval', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approveToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'subtractedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'decreaseTokenAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + ], + name: 'getAllBalance', + outputs: [ + { + name: 'b', + internalType: 'struct TokenFacet.Balance', + type: 'tuple', + components: [ + { name: 'internalBalance', internalType: 'uint256', type: 'uint256' }, + { name: 'externalBalance', internalType: 'uint256', type: 'uint256' }, + { name: 'totalBalance', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'contract IERC20[]', type: 'address[]' }, + ], + name: 'getAllBalances', + outputs: [ + { + name: 'balances', + internalType: 'struct TokenFacet.Balance[]', + type: 'tuple[]', + components: [ + { name: 'internalBalance', internalType: 'uint256', type: 'uint256' }, + { name: 'externalBalance', internalType: 'uint256', type: 'uint256' }, + { name: 'totalBalance', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + ], + name: 'getBalance', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'contract IERC20[]', type: 'address[]' }, + ], + name: 'getBalances', + outputs: [ + { name: 'balances', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + ], + name: 'getExternalBalance', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'contract IERC20[]', type: 'address[]' }, + ], + name: 'getExternalBalances', + outputs: [ + { name: 'balances', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + ], + name: 'getInternalBalance', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'contract IERC20[]', type: 'address[]' }, + ], + name: 'getInternalBalances', + outputs: [ + { name: 'balances', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'addedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'increaseTokenAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155BatchReceived', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + ], + name: 'tokenAllowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'toMode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'transferInternalTokenFrom', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { + name: 'fromMode', + internalType: 'enum LibTransfer.From', + type: 'uint8', + }, + { name: 'toMode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'transferToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.From', type: 'uint8' }, + ], + name: 'unwrapEth', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'wrapEth', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'data', + internalType: 'struct AdvancedFarmCall[]', + type: 'tuple[]', + components: [ + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + { name: 'clipboard', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'advancedFarm', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }], + name: 'farm', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'pipes', + internalType: 'struct AdvancedPipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + { name: 'clipboard', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'advancedPipe', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'etherPipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'pipes', + internalType: 'struct PipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'multiPipe', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'pipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'readPipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'view', + }, + { + type: 'error', + inputs: [{ name: 'x', internalType: 'uint256', type: 'uint256' }], + name: 'PRBMathUD60x18__LogInputTooSmall', + }, + { + type: 'error', + inputs: [ + { name: 'prod1', internalType: 'uint256', type: 'uint256' }, + { name: 'denominator', internalType: 'uint256', type: 'uint256' }, + ], + name: 'PRBMath__MulDivOverflow', + }, + { + type: 'error', + inputs: [ + { name: 'bits', internalType: 'uint8', type: 'uint8' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'SafeCastOverflowedUintDowncast', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ActiveFieldSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'FieldAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'plots', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + { + name: 'beans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Harvest', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'lister', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PodListingCancelled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'secondsSinceStart', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SoilMostlySoldOut', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'secondsSinceStart', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SoilSoldOut', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'beans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'pods', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Sow', + }, + { + type: 'function', + inputs: [], + name: 'activeField', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'addField', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'balanceOfPods', + outputs: [{ name: 'pods', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'beanSown', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'fieldCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'floodHarvestablePods', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getPlotIndexesFromAccount', + outputs: [ + { name: 'plotIndexes', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getPlotsFromAccount', + outputs: [ + { + name: 'plots', + internalType: 'struct FieldFacet.Plot[]', + type: 'tuple[]', + components: [ + { name: 'index', internalType: 'uint256', type: 'uint256' }, + { name: 'pods', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSoilMostlySoldOutThreshold', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSoilSoldOutThreshold', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'plots', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'harvest', + outputs: [ + { name: 'beansHarvested', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'harvestableIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'initialSoil', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'isHarvesting', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'maxTemperature', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + ], + name: 'plot', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'podIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'remainingPods', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: '_temperature', internalType: 'uint32', type: 'uint32' }, + ], + name: 'setActiveField', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'beans', internalType: 'uint256', type: 'uint256' }, + { name: 'minTemperature', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.From', type: 'uint8' }, + ], + name: 'sow', + outputs: [{ name: 'pods', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'beans', internalType: 'uint256', type: 'uint256' }, + { name: 'minTemperature', internalType: 'uint256', type: 'uint256' }, + { name: 'minSoil', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.From', type: 'uint8' }, + ], + name: 'sowWithMin', + outputs: [{ name: 'pods', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'temperature', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'totalHarvestable', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalHarvestableForActiveField', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'totalHarvested', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'totalPods', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalSoil', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'totalUnharvestable', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalUnharvestableForActiveField', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PlotTransfer', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'spender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PodApproval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'lister', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'start', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'podAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'pricePerPod', + internalType: 'uint24', + type: 'uint24', + indexed: false, + }, + { + name: 'maxHarvestableIndex', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'minFillAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'mode', + internalType: 'enum LibTransfer.To', + type: 'uint8', + indexed: false, + }, + ], + name: 'PodListingCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'filler', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'lister', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'start', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'podAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'costInBeans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PodListingFilled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'orderer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'PodOrderCancelled', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'orderer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { + name: 'beanAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'pricePerPod', + internalType: 'uint24', + type: 'uint24', + indexed: false, + }, + { + name: 'maxPlaceInLine', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'minFillAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PodOrderCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'filler', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'orderer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'start', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'podAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'costInBeans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'PodOrderFilled', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'allowancePods', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approvePods', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + ], + name: 'cancelPodListing', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'podOrder', + internalType: 'struct Order.PodOrder', + type: 'tuple', + components: [ + { name: 'orderer', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'pricePerPod', internalType: 'uint24', type: 'uint24' }, + { name: 'maxPlaceInLine', internalType: 'uint256', type: 'uint256' }, + { name: 'minFillAmount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'cancelPodOrder', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'podListing', + internalType: 'struct Listing.PodListing', + type: 'tuple', + components: [ + { name: 'lister', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'podAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'pricePerPod', internalType: 'uint24', type: 'uint24' }, + { + name: 'maxHarvestableIndex', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minFillAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + }, + ], + name: 'createPodListing', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'podOrder', + internalType: 'struct Order.PodOrder', + type: 'tuple', + components: [ + { name: 'orderer', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'pricePerPod', internalType: 'uint24', type: 'uint24' }, + { name: 'maxPlaceInLine', internalType: 'uint256', type: 'uint256' }, + { name: 'minFillAmount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'beanAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.From', type: 'uint8' }, + ], + name: 'createPodOrder', + outputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'podListing', + internalType: 'struct Listing.PodListing', + type: 'tuple', + components: [ + { name: 'lister', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'podAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'pricePerPod', internalType: 'uint24', type: 'uint24' }, + { + name: 'maxHarvestableIndex', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minFillAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + }, + { name: 'beanAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.From', type: 'uint8' }, + ], + name: 'fillPodListing', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'podOrder', + internalType: 'struct Order.PodOrder', + type: 'tuple', + components: [ + { name: 'orderer', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'pricePerPod', internalType: 'uint24', type: 'uint24' }, + { name: 'maxPlaceInLine', internalType: 'uint256', type: 'uint256' }, + { name: 'minFillAmount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'fillPodOrder', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'podOrder', + internalType: 'struct Order.PodOrder', + type: 'tuple', + components: [ + { name: 'orderer', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'pricePerPod', internalType: 'uint24', type: 'uint24' }, + { name: 'maxPlaceInLine', internalType: 'uint256', type: 'uint256' }, + { name: 'minFillAmount', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + name: 'getOrderId', + outputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getPodListing', + outputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], + name: 'getPodOrder', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'index', internalType: 'uint256', type: 'uint256' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'end', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferPlot', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'starts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'ends', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'transferPlots', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'error', + inputs: [ + { name: 'bits', internalType: 'uint8', type: 'uint8' }, + { name: 'value', internalType: 'int256', type: 'int256' }, + ], + name: 'SafeCastOverflowedIntDowncast', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'isWhitelisted', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + { + name: 'isWhitelistedLp', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + { + name: 'isWhitelistedWell', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + { + name: 'isSoppable', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'AddWhitelistStatus', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'DewhitelistToken', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'index', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'isWhitelisted', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + { + name: 'isWhitelistedLp', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + { + name: 'isWhitelistedWell', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + { + name: 'isSoppable', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'UpdateWhitelistStatus', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: '', + internalType: 'struct EvaluationParameters', + type: 'tuple', + components: [ + { + name: 'maxBeanMaxLpGpPerBdvRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minBeanMaxLpGpPerBdvRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'targetSeasonsToCatchUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'podRateLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'podRateOptimal', internalType: 'uint256', type: 'uint256' }, + { + name: 'podRateUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'deltaPodDemandLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'deltaPodDemandUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioOptimal', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'excessivePriceThreshold', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientHigh', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientLow', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'baseReward', internalType: 'uint256', type: 'uint256' }, + { name: 'minAvgGsPerBdv', internalType: 'uint128', type: 'uint128' }, + { + name: 'rainingMinBeanMaxLpGpPerBdvRatio', + internalType: 'uint128', + type: 'uint128', + }, + ], + indexed: false, + }, + ], + name: 'UpdatedEvaluationParameters', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'gaugePointImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + ], + name: 'UpdatedGaugePointImplementationForToken', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'liquidityWeightImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + ], + name: 'UpdatedLiquidityWeightImplementationForToken', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'optimalPercentDepositedBdv', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + ], + name: 'UpdatedOptimalPercentDepositedBdvForToken', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'oracleImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + ], + name: 'UpdatedOracleImplementationForToken', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'stalkEarnedPerSeason', + internalType: 'uint40', + type: 'uint40', + indexed: false, + }, + { + name: 'season', + internalType: 'uint32', + type: 'uint32', + indexed: false, + }, + ], + name: 'UpdatedStalkPerBdvPerSeason', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'selector', + internalType: 'bytes4', + type: 'bytes4', + indexed: false, + }, + { + name: 'stalkEarnedPerSeason', + internalType: 'uint40', + type: 'uint40', + indexed: false, + }, + { + name: 'stalkIssuedPerBdv', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gaugePoints', + internalType: 'uint128', + type: 'uint128', + indexed: false, + }, + { + name: 'optimalPercentDepositedBdv', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + ], + name: 'WhitelistToken', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'dewhitelistToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGaugePointImplementationForToken', + outputs: [ + { + name: '', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getLiquidityWeightImplementationForToken', + outputs: [ + { + name: '', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getOracleImplementationForToken', + outputs: [ + { + name: '', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSiloTokens', + outputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getWhitelistStatus', + outputs: [ + { + name: '_whitelistStatuses', + internalType: 'struct WhitelistStatus', + type: 'tuple', + components: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'isWhitelisted', internalType: 'bool', type: 'bool' }, + { name: 'isWhitelistedLp', internalType: 'bool', type: 'bool' }, + { name: 'isWhitelistedWell', internalType: 'bool', type: 'bool' }, + { name: 'isSoppable', internalType: 'bool', type: 'bool' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWhitelistStatuses', + outputs: [ + { + name: '_whitelistStatuses', + internalType: 'struct WhitelistStatus[]', + type: 'tuple[]', + components: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'isWhitelisted', internalType: 'bool', type: 'bool' }, + { name: 'isWhitelistedLp', internalType: 'bool', type: 'bool' }, + { name: 'isWhitelistedWell', internalType: 'bool', type: 'bool' }, + { name: 'isSoppable', internalType: 'bool', type: 'bool' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWhitelistedLpTokens', + outputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWhitelistedTokens', + outputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWhitelistedWellLpTokens', + outputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { + name: 'optimalPercentDepositedBdv', + internalType: 'uint64', + type: 'uint64', + }, + { + name: 'gpImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + name: 'lwImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'updateGaugeForToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { + name: 'impl', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'updateGaugePointImplementationForToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { + name: 'impl', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'updateLiquidityWeightImplementationForToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { + name: 'impl', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'updateOracleImplementationForToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'updatedSeedGaugeSettings', + internalType: 'struct EvaluationParameters', + type: 'tuple', + components: [ + { + name: 'maxBeanMaxLpGpPerBdvRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minBeanMaxLpGpPerBdvRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'targetSeasonsToCatchUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'podRateLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'podRateOptimal', internalType: 'uint256', type: 'uint256' }, + { + name: 'podRateUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'deltaPodDemandLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'deltaPodDemandUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioOptimal', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'excessivePriceThreshold', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientHigh', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientLow', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'baseReward', internalType: 'uint256', type: 'uint256' }, + { name: 'minAvgGsPerBdv', internalType: 'uint128', type: 'uint128' }, + { + name: 'rainingMinBeanMaxLpGpPerBdvRatio', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + name: 'updateSeedGaugeSettings', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stalkEarnedPerSeason', internalType: 'uint40', type: 'uint40' }, + ], + name: 'updateStalkPerBdvPerSeasonForToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'stalkIssuedPerBdv', internalType: 'uint48', type: 'uint48' }, + { name: 'stalkEarnedPerSeason', internalType: 'uint40', type: 'uint40' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'gaugePoints', internalType: 'uint128', type: 'uint128' }, + { + name: 'optimalPercentDepositedBdv', + internalType: 'uint64', + type: 'uint64', + }, + { + name: 'oracleImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + name: 'gaugePointImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + name: 'liquidityWeightImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'whitelistToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'depositId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'balanceOf', + outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'accounts', internalType: 'address[]', type: 'address[]' }, + { name: 'depositIds', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'balanceOfBatch', + outputs: [{ name: '', internalType: 'uint256[]', type: 'uint256[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'balanceOfDepositedBdv', + outputs: [ + { name: 'depositedBdv', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfEarnedBeans', + outputs: [{ name: 'beans', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfEarnedStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfFinishedGerminatingStalkAndRoots', + outputs: [ + { name: 'gStalk', internalType: 'uint256', type: 'uint256' }, + { name: 'gRoots', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfGerminatingStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'balanceOfGrownStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + ], + name: 'balanceOfGrownStalkMultiple', + outputs: [ + { name: 'grownStalks', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfPlantableSeeds', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'well', internalType: 'address', type: 'address' }, + ], + name: 'balanceOfPlenty', + outputs: [{ name: 'plenty', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfRainRoots', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfRoots', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfSop', + outputs: [ + { + name: 'sop', + internalType: 'struct SiloGettersFacet.AccountSeasonOfPlenty', + type: 'tuple', + components: [ + { name: 'lastRain', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSop', internalType: 'uint32', type: 'uint32' }, + { name: 'roots', internalType: 'uint256', type: 'uint256' }, + { + name: 'farmerSops', + internalType: 'struct SiloGettersFacet.FarmerSops[]', + type: 'tuple[]', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { + name: 'wellsPlenty', + internalType: 'struct PerWellPlenty', + type: 'tuple', + components: [ + { + name: 'plentyPerRoot', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'plenty', internalType: 'uint256', type: 'uint256' }, + { + name: '_buffer', + internalType: 'bytes32[4]', + type: 'bytes32[4]', + }, + ], + }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfYoungAndMatureGerminatingStalk', + outputs: [ + { + name: 'matureGerminatingStalk', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'youngGerminatingStalk', + internalType: 'uint256', + type: 'uint256', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'bdv', + outputs: [{ name: '_bdv', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'bdvs', + outputs: [{ name: '_bdvs', internalType: 'uint256[]', type: 'uint256[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'grownStalk', internalType: 'uint256', type: 'uint256' }, + { name: 'bdvOfDeposit', internalType: 'uint256', type: 'uint256' }, + ], + name: 'calculateStemForTokenFromGrownStalk', + outputs: [ + { name: 'stem', internalType: 'int96', type: 'int96' }, + { name: 'germ', internalType: 'enum GerminationSide', type: 'uint8' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'depositId', internalType: 'uint256', type: 'uint256' }], + name: 'getAddressAndStem', + outputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'tokens', internalType: 'contract IERC20[]', type: 'address[]' }, + ], + name: 'getBeanIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getBeanToken', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + name: 'getDeposit', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + name: 'getDepositId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'getDepositsForAccount', + outputs: [ + { + name: 'deposits', + internalType: 'struct SiloGettersFacet.TokenDepositId[]', + type: 'tuple[]', + components: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'depositIds', internalType: 'uint256[]', type: 'uint256[]' }, + { + name: 'tokenDeposits', + internalType: 'struct Deposit[]', + type: 'tuple[]', + components: [ + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + { name: 'bdv', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + ], + name: 'getDepositsForAccount', + outputs: [ + { + name: 'deposits', + internalType: 'struct SiloGettersFacet.TokenDepositId[]', + type: 'tuple[]', + components: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'depositIds', internalType: 'uint256[]', type: 'uint256[]' }, + { + name: 'tokenDeposits', + internalType: 'struct Deposit[]', + type: 'tuple[]', + components: [ + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + { name: 'bdv', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getEvenGerminating', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'season', internalType: 'uint32', type: 'uint32' }], + name: 'getGerminatingRootsForSeason', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'season', internalType: 'uint32', type: 'uint32' }], + name: 'getGerminatingStalkAndRootsForSeason', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'season', internalType: 'uint32', type: 'uint32' }], + name: 'getGerminatingStalkForSeason', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGerminatingStem', + outputs: [ + { name: 'germinatingStem', internalType: 'int96', type: 'int96' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + name: 'getGerminatingStems', + outputs: [ + { name: 'germinatingStems', internalType: 'int96[]', type: 'int96[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGerminatingTotalDeposited', + outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGerminatingTotalDepositedBdv', + outputs: [{ name: '_bdv', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getHighestNonGerminatingStem', + outputs: [{ name: 'stem', internalType: 'int96', type: 'int96' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + name: 'getHighestNonGerminatingStems', + outputs: [ + { + name: 'highestNonGerminatingStems', + internalType: 'int96[]', + type: 'int96[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'depositId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getIndexForDepositId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getLastMowedStem', + outputs: [{ name: 'lastStem', internalType: 'int96', type: 'int96' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + ], + name: 'getMowStatus', + outputs: [ + { + name: 'mowStatuses', + internalType: 'struct MowStatus[]', + type: 'tuple[]', + components: [ + { name: 'lastStem', internalType: 'int96', type: 'int96' }, + { name: 'bdv', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getMowStatus', + outputs: [ + { + name: 'mowStatus', + internalType: 'struct MowStatus', + type: 'tuple', + components: [ + { name: 'lastStem', internalType: 'int96', type: 'int96' }, + { name: 'bdv', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'getNonBeanTokenAndIndexFromWell', + outputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getOddGerminating', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getSeedsForToken', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getStemTips', + outputs: [{ name: '_stemTips', internalType: 'int96[]', type: 'int96[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getTokenDepositIdsForAccount', + outputs: [ + { name: 'depositIds', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getTokenDepositsForAccount', + outputs: [ + { + name: 'deposits', + internalType: 'struct SiloGettersFacet.TokenDepositId', + type: 'tuple', + components: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'depositIds', internalType: 'uint256[]', type: 'uint256[]' }, + { + name: 'tokenDeposits', + internalType: 'struct Deposit[]', + type: 'tuple[]', + components: [ + { name: 'amount', internalType: 'uint128', type: 'uint128' }, + { name: 'bdv', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTotalDeposited', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTotalDepositedBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTotalGerminatingAmount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTotalGerminatingBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTotalGerminatingStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTotalSiloDeposited', + outputs: [ + { + name: 'depositedAmounts', + internalType: 'uint256[]', + type: 'uint256[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTotalSiloDepositedBdv', + outputs: [ + { name: 'depositedBdvs', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getYoungAndMatureGerminatingTotalStalk', + outputs: [ + { + name: 'matureGerminatingStalk', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'youngGerminatingStalk', + internalType: 'uint256', + type: 'uint256', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + name: 'grownStalkForDeposit', + outputs: [{ name: 'grownStalk', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'lastSeasonOfPlenty', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'lastUpdate', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'tokens', internalType: 'address[]', type: 'address[]' }], + name: 'stalkEarnedPerSeason', + outputs: [ + { + name: 'stalkEarnedPerSeasons', + internalType: 'uint256[]', + type: 'uint256[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'stemTipForToken', + outputs: [{ name: '_stemTip', internalType: 'int96', type: 'int96' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'tokenSettings', + outputs: [ + { + name: '', + internalType: 'struct AssetSettings', + type: 'tuple', + components: [ + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { + name: 'stalkEarnedPerSeason', + internalType: 'uint40', + type: 'uint40', + }, + { name: 'stalkIssuedPerBdv', internalType: 'uint48', type: 'uint48' }, + { name: 'milestoneSeason', internalType: 'uint32', type: 'uint32' }, + { name: 'milestoneStem', internalType: 'int96', type: 'int96' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { + name: 'deltaStalkEarnedPerSeason', + internalType: 'int40', + type: 'int40', + }, + { name: 'gaugePoints', internalType: 'uint128', type: 'uint128' }, + { + name: 'optimalPercentDepositedBdv', + internalType: 'uint64', + type: 'uint64', + }, + { + name: 'gaugePointImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + name: 'liquidityWeightImplementation', + internalType: 'struct Implementation', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'encodeType', internalType: 'bytes1', type: 'bytes1' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalEarnedBeans', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalRainRoots', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalRoots', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'delta', internalType: 'int256', type: 'int256', indexed: false }, + { + name: 'germ', + internalType: 'enum GerminationSide', + type: 'uint8', + indexed: false, + }, + ], + name: 'FarmerGerminatingStalkBalanceChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'stem', internalType: 'int96', type: 'int96', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'bdv', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'RemoveDeposit', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'stems', + internalType: 'int96[]', + type: 'int96[]', + indexed: false, + }, + { + name: 'amounts', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'bdvs', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + ], + name: 'RemoveDeposits', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'delta', internalType: 'int256', type: 'int256', indexed: false }, + { + name: 'deltaRoots', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'StalkBalanceChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'germinationSeason', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deltaAmount', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'deltaBdv', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'TotalGerminatingBalanceChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'germinationSeason', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'deltaGerminatingStalk', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'TotalGerminatingStalkChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'ids', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + { + name: 'values', + internalType: 'uint256[]', + type: 'uint256[]', + indexed: false, + }, + ], + name: 'TransferBatch', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'depositId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TransferSingle', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.From', type: 'uint8' }, + ], + name: 'deposit', + outputs: [ + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: '_bdv', internalType: 'uint256', type: 'uint256' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'depositIds', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeBatchTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'depositId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferDeposit', + outputs: [{ name: '_bdv', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'transferDeposits', + outputs: [{ name: 'bdvs', internalType: 'uint256[]', type: 'uint256[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { + name: 'sortedDepositIds', + internalType: 'uint256[]', + type: 'uint256[]', + }, + ], + name: 'updateSortedDepositIds', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'withdrawDeposit', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'withdrawDeposits', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fromToken', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'toToken', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'fromAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'toAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'fromBdv', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'toBdv', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Convert', + }, + { + type: 'function', + inputs: [ + { name: 'inputToken', internalType: 'address', type: 'address' }, + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'outputToken', internalType: 'address', type: 'address' }, + { + name: 'advancedPipeCalls', + internalType: 'struct AdvancedPipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + { name: 'clipboard', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'pipelineConvert', + outputs: [ + { name: 'toStem', internalType: 'int96', type: 'int96' }, + { name: 'fromAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'toAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'fromBdv', internalType: 'uint256', type: 'uint256' }, + { name: 'toBdv', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'inputToken', internalType: 'address', type: 'address' }, + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'outputToken', internalType: 'address', type: 'address' }, + { name: 'grownStalkSlippage', internalType: 'int256', type: 'int256' }, + { + name: 'advancedPipeCalls', + internalType: 'struct AdvancedPipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + { name: 'clipboard', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'pipelineConvertWithStalkSlippage', + outputs: [ + { name: 'toStem', internalType: 'int96', type: 'int96' }, + { name: 'fromAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'toAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'fromBdv', internalType: 'uint256', type: 'uint256' }, + { name: 'toBdv', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', + }, + { type: 'error', inputs: [], name: 'T' }, + { + type: 'function', + inputs: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'reserves', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'calculateDeltaBFromReserves', + outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'dbs', + internalType: 'struct LibConvert.DeltaBStorage', + type: 'tuple', + components: [ + { + name: 'beforeInputTokenDeltaB', + internalType: 'int256', + type: 'int256', + }, + { + name: 'afterInputTokenDeltaB', + internalType: 'int256', + type: 'int256', + }, + { + name: 'beforeOutputTokenDeltaB', + internalType: 'int256', + type: 'int256', + }, + { + name: 'afterOutputTokenDeltaB', + internalType: 'int256', + type: 'int256', + }, + { + name: 'beforeOverallDeltaB', + internalType: 'int256', + type: 'int256', + }, + { + name: 'afterOverallDeltaB', + internalType: 'int256', + type: 'int256', + }, + ], + }, + { name: 'bdvConverted', internalType: 'uint256', type: 'uint256' }, + { + name: 'overallConvertCapacity', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'inputToken', internalType: 'address', type: 'address' }, + { name: 'outputToken', internalType: 'address', type: 'address' }, + ], + name: 'calculateStalkPenalty', + outputs: [ + { name: 'stalkPenaltyBdv', internalType: 'uint256', type: 'uint256' }, + { + name: 'overallConvertCapacityUsed', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'inputTokenAmountUsed', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'outputTokenAmountUsed', + internalType: 'uint256', + type: 'uint256', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'cappedReservesDeltaB', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'bdvToConvert', internalType: 'uint256', type: 'uint256' }, + { name: 'grownStalkToConvert', internalType: 'uint256', type: 'uint256' }, + { name: 'amountConverted', internalType: 'uint256', type: 'uint256' }, + ], + name: 'downPenalizedGrownStalk', + outputs: [ + { name: 'newGrownStalk', internalType: 'uint256', type: 'uint256' }, + { name: 'grownStalkLost', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'tokenIn', internalType: 'address', type: 'address' }, + { name: 'tokenOut', internalType: 'address', type: 'address' }, + { name: 'amountIn', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getAmountOut', + outputs: [{ name: 'amountOut', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getCalculatedBonusStalkPerBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getConvertStalkPerBdvBonusAndMaximumCapacity', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getConvertStalkPerBdvBonusAndRemainingCapacity', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'tokenIn', internalType: 'address', type: 'address' }, + { name: 'tokenOut', internalType: 'address', type: 'address' }, + ], + name: 'getMaxAmountIn', + outputs: [{ name: 'amountIn', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'tokenIn', internalType: 'address', type: 'address' }, + { name: 'tokenOut', internalType: 'address', type: 'address' }, + { name: 'rate', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getMaxAmountInAtRate', + outputs: [{ name: 'amountIn', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getOverallConvertCapacity', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'getWellConvertCapacity', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'overallCappedDeltaB', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'overallCurrentDeltaB', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'beforeLpTokenSupply', internalType: 'uint256', type: 'uint256' }, + { name: 'afterLpTokenSupply', internalType: 'uint256', type: 'uint256' }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + ], + name: 'scaledDeltaB', + outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'bdvToConvert', internalType: 'uint256', type: 'uint256' }, + { name: 'grownStalk', internalType: 'uint256', type: 'uint256' }, + ], + name: 'stalkBonus', + outputs: [ + { name: 'bdvCapacityUsed', internalType: 'uint256', type: 'uint256' }, + { name: 'grownStalkGained', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'convertData', internalType: 'bytes', type: 'bytes' }, + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'convert', + outputs: [ + { name: 'toStem', internalType: 'int96', type: 'int96' }, + { name: 'fromAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'toAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'fromBdv', internalType: 'uint256', type: 'uint256' }, + { name: 'toBdv', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'convertData', internalType: 'bytes', type: 'bytes' }, + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'grownStalkSlippage', internalType: 'int256', type: 'int256' }, + ], + name: 'convertWithStalkSlippage', + outputs: [ + { name: 'toStem', internalType: 'int96', type: 'int96' }, + { name: 'fromAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'toAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'fromBdv', internalType: 'uint256', type: 'uint256' }, + { name: 'toBdv', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'payable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'plenty', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ClaimPlenty', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'beans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Plant', + }, + { + type: 'function', + inputs: [ + { name: 'toMode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'claimAllPlenty', + outputs: [ + { + name: 'allPlenty', + internalType: 'struct ClaimFacet.ClaimPlentyData[]', + type: 'tuple[]', + components: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'plenty', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'toMode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'claimPlenty', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'mow', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'mowAll', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'accounts', internalType: 'address[]', type: 'address[]' }, + ], + name: 'mowAllMultipleAccounts', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + ], + name: 'mowMultiple', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'accounts', internalType: 'address[]', type: 'address[]' }, + { name: 'tokens', internalType: 'address[][]', type: 'address[][]' }, + ], + name: 'mowMultipleAccounts', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'plant', + outputs: [ + { name: 'beans', internalType: 'uint256', type: 'uint256' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }], + name: 'beanToBDV', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'wellBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'spender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DepositApproval', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approveDeposit', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'subtractedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'decreaseDepositAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'depositAllowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'addedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'increaseDepositAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'beans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Incentivization', + }, + { + type: 'function', + inputs: [{ name: 'secondsLate', internalType: 'uint256', type: 'uint256' }], + name: 'determineReward', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'deltaStalk', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'deltaRoots', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'TotalStalkChangedFromGermination', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'season', internalType: 'uint32', type: 'uint32', indexed: true }, + { + name: 'well', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'deltaB', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + { + name: 'cumulativeReserves', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WellOracle', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'check', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'stem', internalType: 'int96', type: 'int96', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'bdv', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'AddDeposit', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'gaugePoints', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'GaugePointChange', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'newStalkPerBdvPerSeason', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'UpdateAverageStalkPerBdvPerSeason', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'newMaxTotalGaugePoints', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'UpdateMaxTotalGaugePoints', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'recipient', + internalType: 'enum ShipmentRecipient', + type: 'uint8', + indexed: true, + }, + { + name: 'receivedAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'Receipt', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'season', internalType: 'uint32', type: 'uint32', indexed: true }, + { + name: 'shipmentAmount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Shipped', + }, + { + type: 'function', + inputs: [ + { name: 'shipmentAmounts', internalType: 'uint256[]', type: 'uint256[]' }, + { + name: 'shipmentPlans', + internalType: 'struct ShipmentPlan[]', + type: 'tuple[]', + components: [ + { name: 'points', internalType: 'uint256', type: 'uint256' }, + { name: 'cap', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'totalPoints', internalType: 'uint256', type: 'uint256' }, + { name: 'beansToShip', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getBeansFromPoints', + outputs: [], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'shipmentRoutes', + internalType: 'struct ShipmentRoute[]', + type: 'tuple[]', + components: [ + { name: 'planContract', internalType: 'address', type: 'address' }, + { name: 'planSelector', internalType: 'bytes4', type: 'bytes4' }, + { + name: 'recipient', + internalType: 'enum ShipmentRecipient', + type: 'uint8', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'getShipmentPlans', + outputs: [ + { + name: 'shipmentPlans', + internalType: 'struct ShipmentPlan[]', + type: 'tuple[]', + components: [ + { name: 'points', internalType: 'uint256', type: 'uint256' }, + { name: 'cap', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: 'totalPoints', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'deltaPodDemand', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'lpToSupplyRatio', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'podRate', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'thisSowTime', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'lastSowTime', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SeasonMetrics', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'caseId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'absChange', + internalType: 'int80', + type: 'int80', + indexed: false, + }, + ], + name: 'BeanToMaxLpGpPerBdvRatioChange', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { name: 'raining', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'RainStatus', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'toField', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SeasonOfPlentyField', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'well', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'beans', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SeasonOfPlentyWell', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'caseId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'absChange', + internalType: 'int32', + type: 'int32', + indexed: false, + }, + { + name: 'fieldId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'TemperatureChange', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'gaugeId', + internalType: 'enum GaugeId', + type: 'uint8', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'UpdatedGaugeData', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'grownStalkLost', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'grownStalkKept', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ConvertDownPenalty', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'grownStalkGained', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'newGrownStalk', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'bdvCapacityUsed', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'bdvConverted', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ConvertUpBonus', + }, + { + type: 'function', + inputs: [], + name: 'abovePeg', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'pools', internalType: 'address[]', type: 'address[]' }], + name: 'cumulativeCurrentDeltaB', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'caseId', internalType: 'uint256', type: 'uint256' }], + name: 'getAbsBeanToMaxLpRatioChangeFromCaseId', + outputs: [{ name: 'ml', internalType: 'uint80', type: 'uint80' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'caseId', internalType: 'uint256', type: 'uint256' }], + name: 'getAbsTemperatureChangeFromCaseId', + outputs: [{ name: 't', internalType: 'int32', type: 'int32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'caseId', internalType: 'uint256', type: 'uint256' }], + name: 'getCaseData', + outputs: [{ name: 'casesData', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getCases', + outputs: [ + { name: 'cases', internalType: 'bytes32[144]', type: 'bytes32[144]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'caseId', internalType: 'uint256', type: 'uint256' }], + name: 'getChangeFromCaseId', + outputs: [ + { name: '', internalType: 'uint32', type: 'uint32' }, + { name: '', internalType: 'int32', type: 'int32' }, + { name: '', internalType: 'uint80', type: 'uint80' }, + { name: '', internalType: 'int80', type: 'int80' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getDeltaPodDemandLowerBound', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getDeltaPodDemandUpperBound', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getEvaluationParameters', + outputs: [ + { + name: '', + internalType: 'struct EvaluationParameters', + type: 'tuple', + components: [ + { + name: 'maxBeanMaxLpGpPerBdvRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minBeanMaxLpGpPerBdvRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'targetSeasonsToCatchUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'podRateLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'podRateOptimal', internalType: 'uint256', type: 'uint256' }, + { + name: 'podRateUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'deltaPodDemandLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'deltaPodDemandUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioUpperBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioOptimal', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lpToSupplyRatioLowerBound', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'excessivePriceThreshold', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientHigh', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientLow', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'baseReward', internalType: 'uint256', type: 'uint256' }, + { name: 'minAvgGsPerBdv', internalType: 'uint128', type: 'uint128' }, + { + name: 'rainingMinBeanMaxLpGpPerBdvRatio', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getExcessivePriceThreshold', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getExtEvaluationParameters', + outputs: [ + { + name: '', + internalType: 'struct ExtEvaluationParameters', + type: 'tuple', + components: [ + { + name: 'belowPegSoilL2SRScalar', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientRelativelyHigh', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilCoefficientRelativelyLow', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'abovePegDeltaBSoilScalar', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'soilDistributionPeriod', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minSoilIssuance', internalType: 'uint256', type: 'uint256' }, + { name: 'buffer', internalType: 'bytes32[61]', type: 'bytes32[61]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLargestLiqWell', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLpToSupplyRatioLowerBound', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLpToSupplyRatioOptimal', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLpToSupplyRatioUpperBound', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getMaxBeanMaxLpGpPerBdvRatio', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getMinBeanMaxLpGpPerBdvRatio', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getOrderLockedBeans', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getPodRateLowerBound', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getPodRateOptimal', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getPodRateUpperBound', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'caseId', internalType: 'uint256', type: 'uint256' }], + name: 'getRelBeanToMaxLpRatioChangeFromCaseId', + outputs: [{ name: 'l', internalType: 'int80', type: 'int80' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'caseId', internalType: 'uint256', type: 'uint256' }], + name: 'getRelTemperatureChangeFromCaseId', + outputs: [{ name: 'mt', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSeasonStruct', + outputs: [ + { + name: '', + internalType: 'struct Season', + type: 'tuple', + components: [ + { name: 'current', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSop', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSopSeason', internalType: 'uint32', type: 'uint32' }, + { name: 'rainStart', internalType: 'uint32', type: 'uint32' }, + { name: 'raining', internalType: 'bool', type: 'bool' }, + { name: 'sunriseBlock', internalType: 'uint64', type: 'uint64' }, + { name: 'abovePeg', internalType: 'bool', type: 'bool' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'period', internalType: 'uint256', type: 'uint256' }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + { + name: 'standardMintedBeans', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_buffer', internalType: 'bytes32[8]', type: 'bytes32[8]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSeasonTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTargetSeasonsToCatchUp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTotalUsdLiquidity', + outputs: [ + { name: 'totalLiquidity', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTotalWeightedUsdLiquidity', + outputs: [ + { + name: 'totalWeightedLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'getTwaLiquidityForWell', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'getWeightedTwaLiquidityForWell', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWellsByDeltaB', + outputs: [ + { + name: 'wellDeltaBs', + internalType: 'struct LibFlood.WellDeltaB[]', + type: 'tuple[]', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + ], + }, + { name: 'totalPositiveDeltaB', internalType: 'uint256', type: 'uint256' }, + { name: 'totalNegativeDeltaB', internalType: 'uint256', type: 'uint256' }, + { name: 'positiveDeltaBCount', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: '_season', internalType: 'uint32', type: 'uint32' }, + { name: 'well', internalType: 'address', type: 'address' }, + ], + name: 'plentyPerRoot', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + name: 'poolCurrentDeltaB', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + name: 'poolDeltaB', + outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + name: 'poolDeltaBNoCap', + outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'rain', + outputs: [ + { + name: '', + internalType: 'struct Rain', + type: 'tuple', + components: [ + { name: 'pods', internalType: 'uint256', type: 'uint256' }, + { name: 'roots', internalType: 'uint256', type: 'uint256' }, + { + name: 'floodHarvestablePods', + internalType: 'uint128', + type: 'uint128', + }, + { name: '_buffer', internalType: 'bytes32[3]', type: 'bytes32[3]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'season', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'sunriseBlock', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'time', + outputs: [ + { + name: '', + internalType: 'struct Season', + type: 'tuple', + components: [ + { name: 'current', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSop', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSopSeason', internalType: 'uint32', type: 'uint32' }, + { name: 'rainStart', internalType: 'uint32', type: 'uint32' }, + { name: 'raining', internalType: 'bool', type: 'bool' }, + { name: 'sunriseBlock', internalType: 'uint64', type: 'uint64' }, + { name: 'abovePeg', internalType: 'bool', type: 'bool' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'period', internalType: 'uint256', type: 'uint256' }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + { + name: 'standardMintedBeans', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_buffer', internalType: 'bytes32[8]', type: 'bytes32[8]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalDeltaB', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalDeltaBNoCap', + outputs: [{ name: 'deltaB', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalInstantaneousDeltaB', + outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'weather', + outputs: [ + { + name: '', + internalType: 'struct Weather', + type: 'tuple', + components: [ + { name: 'lastDeltaSoil', internalType: 'uint128', type: 'uint128' }, + { name: 'lastSowTime', internalType: 'uint32', type: 'uint32' }, + { name: 'thisSowTime', internalType: 'uint32', type: 'uint32' }, + { name: 'temp', internalType: 'uint64', type: 'uint64' }, + { name: 'morningControl', internalType: 'uint128', type: 'uint128' }, + { name: 'morningDuration', internalType: 'uint16', type: 'uint16' }, + { name: '_buffer', internalType: 'bytes32[3]', type: 'bytes32[3]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'wellOracleSnapshot', + outputs: [{ name: 'snapshot', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'view', + }, + { type: 'error', inputs: [], name: 'MathOverflowedMulDiv' }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'gaugeId', + internalType: 'enum GaugeId', + type: 'uint8', + indexed: false, + }, + { name: 'value', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'Engaged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'gaugeId', + internalType: 'enum GaugeId', + type: 'uint8', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'EngagedData', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'newShipmentRoutes', + internalType: 'struct ShipmentRoute[]', + type: 'tuple[]', + components: [ + { name: 'planContract', internalType: 'address', type: 'address' }, + { name: 'planSelector', internalType: 'bytes4', type: 'bytes4' }, + { + name: 'recipient', + internalType: 'enum ShipmentRecipient', + type: 'uint8', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + ], + name: 'ShipmentRoutesSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'season', internalType: 'uint32', type: 'uint32', indexed: true }, + { + name: 'soil', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'Soil', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'season', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Sunrise', + }, + { + type: 'function', + inputs: [], + name: 'getShipmentRoutes', + outputs: [ + { + name: '', + internalType: 'struct ShipmentRoute[]', + type: 'tuple[]', + components: [ + { name: 'planContract', internalType: 'address', type: 'address' }, + { name: 'planSelector', internalType: 'bytes4', type: 'bytes4' }, + { + name: 'recipient', + internalType: 'enum ShipmentRecipient', + type: 'uint8', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'gm', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'seasonTime', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'shipmentRoutes', + internalType: 'struct ShipmentRoute[]', + type: 'tuple[]', + components: [ + { name: 'planContract', internalType: 'address', type: 'address' }, + { name: 'planSelector', internalType: 'bytes4', type: 'bytes4' }, + { + name: 'recipient', + internalType: 'enum ShipmentRecipient', + type: 'uint8', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'setShipmentRoutes', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'sunrise', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getMillionUsdPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'tokens', internalType: 'contract IERC20[]', type: 'address[]' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getRatiosAndBeanIndex', + outputs: [ + { name: 'ratios', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'beanIndex', internalType: 'uint256', type: 'uint256' }, + { name: 'success', internalType: 'bool', type: 'bool' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTokenUsdPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getTokenUsdPriceFromExternal', + outputs: [{ name: 'tokenUsd', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getTokenUsdTwap', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getUsdTokenPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getUsdTokenPriceFromExternal', + outputs: [{ name: 'usdToken', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'lookback', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getUsdTokenTwap', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'maxWeight', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'noWeight', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { + name: 'percentOfDepositedBdv', + internalType: 'uint256', + type: 'uint256', + }, + ], + name: 'calcGaugePointsWithParams', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getAverageGrownStalkPerBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getAverageGrownStalkPerBdvPerSeason', + outputs: [{ name: '', internalType: 'uint128', type: 'uint128' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getBeanGaugePointsPerBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getBeanToMaxLpGpPerBdvRatio', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getBeanToMaxLpGpPerBdvRatioScaled', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getDeltaPodDemand', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGaugePoints', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGaugePointsPerBdvForToken', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'well', internalType: 'address', type: 'address' }], + name: 'getGaugePointsPerBdvForWell', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getGaugePointsWithParams', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getGrownStalkIssuedPerGp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getGrownStalkIssuedPerSeason', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLargestGpPerBdv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLiquidityToSupplyRatio', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getMaxTotalGaugePoints', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'fieldId', internalType: 'uint256', type: 'uint256' }], + name: 'getPodRate', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSeedGauge', + outputs: [ + { + name: '', + internalType: 'struct SeedGauge', + type: 'tuple', + components: [ + { + name: 'averageGrownStalkPerBdvPerSeason', + internalType: 'uint128', + type: 'uint128', + }, + { + name: 'beanToMaxLpGpPerBdvRatio', + internalType: 'uint128', + type: 'uint128', + }, + { name: 'avgGsPerBdvFlag', internalType: 'bool', type: 'bool' }, + { + name: 'maxTotalGaugePoints', + internalType: 'uint128', + type: 'uint128', + }, + { name: '_buffer', internalType: 'bytes32[4]', type: 'bytes32[4]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTotalBdv', + outputs: [{ name: 'totalBdv', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'value', internalType: 'bytes', type: 'bytes' }, + { name: 'systemData', internalType: 'bytes', type: 'bytes' }, + { name: 'gaugeData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'convertDownPenaltyGauge', + outputs: [ + { name: '', internalType: 'bytes', type: 'bytes' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'value', internalType: 'bytes', type: 'bytes' }, + { name: 'systemData', internalType: 'bytes', type: 'bytes' }, + { name: 'gaugeData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'convertUpBonusGauge', + outputs: [ + { name: '', internalType: 'bytes', type: 'bytes' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'value', internalType: 'bytes', type: 'bytes' }, + { name: 'systemData', internalType: 'bytes', type: 'bytes' }, + { name: 'gaugeData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'cultivationFactor', + outputs: [ + { name: '', internalType: 'bytes', type: 'bytes' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'currentGaugePoints', internalType: 'uint256', type: 'uint256' }, + { + name: 'optimalPercentDepositedBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'percentOfDepositedBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'defaultGaugePoints', + outputs: [ + { name: 'newGaugePoints', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'optimalPercentBdv', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getExtremelyFarAbove', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'optimalPercentBdv', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getExtremelyFarBelow', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'gaugeId', internalType: 'enum GaugeId', type: 'uint8' }], + name: 'getGauge', + outputs: [ + { + name: '', + internalType: 'struct Gauge', + type: 'tuple', + components: [ + { name: 'value', internalType: 'bytes', type: 'bytes' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'gaugeId', internalType: 'enum GaugeId', type: 'uint8' }], + name: 'getGaugeData', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'gaugeId', internalType: 'enum GaugeId', type: 'uint8' }, + { name: 'systemData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'getGaugeIdResult', + outputs: [ + { name: '', internalType: 'bytes', type: 'bytes' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'gauge', + internalType: 'struct Gauge', + type: 'tuple', + components: [ + { name: 'value', internalType: 'bytes', type: 'bytes' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'selector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'systemData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'getGaugeResult', + outputs: [ + { name: '', internalType: 'bytes', type: 'bytes' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'gaugeId', internalType: 'enum GaugeId', type: 'uint8' }], + name: 'getGaugeValue', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'optimalPercentBdv', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getRelativelyCloseAbove', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'optimalPercentBdv', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getRelativelyCloseBelow', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'optimalPercentBdv', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getRelativelyFarAbove', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'optimalPercentBdv', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getRelativelyFarBelow', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'error', + inputs: [ + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'length', internalType: 'uint256', type: 'uint256' }, + ], + name: 'StringsInsufficientHexLength', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_uri', internalType: 'string', type: 'string', indexed: false }, + { name: '_id', internalType: 'uint256', type: 'uint256', indexed: true }, + ], + name: 'URI', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + name: 'imageURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'depositId', internalType: 'uint256', type: 'uint256' }], + name: 'uri', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'view', + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const beanstalkAddress = { + 1: '0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5', + 1337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 8453: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 31337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 41337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 42161: '0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const beanstalkConfig = { + address: beanstalkAddress, + abi: beanstalkAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// beanstalkPrice +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const beanstalkPriceAbi = [ + { + type: 'constructor', + inputs: [{ name: 'beanstalk', internalType: 'address', type: 'address' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'beans', internalType: 'uint256', type: 'uint256' }], + name: 'getBestWellForBeanIn', + outputs: [ + { + name: 'sd', + internalType: 'struct WellPrice.SwapData', + type: 'tuple', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'usdValue', internalType: 'uint256', type: 'uint256' }, + { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'usdAmount', internalType: 'uint256', type: 'uint256' }], + name: 'getBestWellForUsdIn', + outputs: [ + { + name: 'sd', + internalType: 'struct WellPrice.SwapData', + type: 'tuple', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'usdValue', internalType: 'uint256', type: 'uint256' }, + { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'beans', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getSwapDataBeanIn', + outputs: [ + { + name: 'sd', + internalType: 'struct WellPrice.SwapData', + type: 'tuple', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'usdValue', internalType: 'uint256', type: 'uint256' }, + { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'beans', internalType: 'uint256', type: 'uint256' }], + name: 'getSwapDataBeanInAll', + outputs: [ + { + name: 'sds', + internalType: 'struct WellPrice.SwapData[]', + type: 'tuple[]', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'usdValue', internalType: 'uint256', type: 'uint256' }, + { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'usdAmount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getSwapDataUsdIn', + outputs: [ + { + name: 'sd', + internalType: 'struct WellPrice.SwapData', + type: 'tuple', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'usdValue', internalType: 'uint256', type: 'uint256' }, + { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'usdAmount', internalType: 'uint256', type: 'uint256' }], + name: 'getSwapDataUsdInAll', + outputs: [ + { + name: 'sds', + internalType: 'struct WellPrice.SwapData[]', + type: 'tuple[]', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'usdValue', internalType: 'uint256', type: 'uint256' }, + { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'wellAddress', internalType: 'address', type: 'address' }], + name: 'getWell', + outputs: [ + { + name: 'pool', + internalType: 'struct P.Pool', + type: 'tuple', + components: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[2]', type: 'address[2]' }, + { name: 'balances', internalType: 'uint256[2]', type: 'uint256[2]' }, + { name: 'price', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint256', type: 'uint256' }, + { name: 'beanLiquidity', internalType: 'uint256', type: 'uint256' }, + { + name: 'nonBeanLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + { name: 'lpUsd', internalType: 'uint256', type: 'uint256' }, + { name: 'lpBdv', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'pool', internalType: 'address', type: 'address' }], + name: 'poolPrice', + outputs: [ + { + name: 'p', + internalType: 'struct P.Pool', + type: 'tuple', + components: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[2]', type: 'address[2]' }, + { name: 'balances', internalType: 'uint256[2]', type: 'uint256[2]' }, + { name: 'price', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint256', type: 'uint256' }, + { name: 'beanLiquidity', internalType: 'uint256', type: 'uint256' }, + { + name: 'nonBeanLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + { name: 'lpUsd', internalType: 'uint256', type: 'uint256' }, + { name: 'lpBdv', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'price', + outputs: [ + { + name: 'p', + internalType: 'struct BeanstalkPrice.Prices', + type: 'tuple', + components: [ + { name: 'price', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint256', type: 'uint256' }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + { + name: 'ps', + internalType: 'struct P.Pool[]', + type: 'tuple[]', + components: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { + name: 'tokens', + internalType: 'address[2]', + type: 'address[2]', + }, + { + name: 'balances', + internalType: 'uint256[2]', + type: 'uint256[2]', + }, + { name: 'price', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint256', type: 'uint256' }, + { + name: 'beanLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'nonBeanLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + { name: 'lpUsd', internalType: 'uint256', type: 'uint256' }, + { name: 'lpBdv', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'wells', internalType: 'address[]', type: 'address[]' }], + name: 'priceForWells', + outputs: [ + { + name: 'p', + internalType: 'struct BeanstalkPrice.Prices', + type: 'tuple', + components: [ + { name: 'price', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint256', type: 'uint256' }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + { + name: 'ps', + internalType: 'struct P.Pool[]', + type: 'tuple[]', + components: [ + { name: 'pool', internalType: 'address', type: 'address' }, + { + name: 'tokens', + internalType: 'address[2]', + type: 'address[2]', + }, + { + name: 'balances', + internalType: 'uint256[2]', + type: 'uint256[2]', + }, + { name: 'price', internalType: 'uint256', type: 'uint256' }, + { name: 'liquidity', internalType: 'uint256', type: 'uint256' }, + { + name: 'beanLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'nonBeanLiquidity', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'deltaB', internalType: 'int256', type: 'int256' }, + { name: 'lpUsd', internalType: 'uint256', type: 'uint256' }, + { name: 'lpBdv', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const beanstalkPriceAddress = { + 1: '0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4', + 1337: '0x13D25ABCB6a19948d35654715c729c6501230b49', + 8453: '0x13D25ABCB6a19948d35654715c729c6501230b49', + 31337: '0x13D25ABCB6a19948d35654715c729c6501230b49', + 41337: '0x13D25ABCB6a19948d35654715c729c6501230b49', + 42161: '0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const beanstalkPriceConfig = { + address: beanstalkPriceAddress, + abi: beanstalkPriceAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// convertUpBlueprint +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const convertUpBlueprintAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_beanstalk', internalType: 'address', type: 'address' }, + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_tractorHelpers', internalType: 'address', type: 'address' }, + { name: '_siloHelpers', internalType: 'address', type: 'address' }, + { name: '_beanstalkPrice', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'error', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'OwnableInvalidOwner', + }, + { + type: 'error', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'OwnableUnauthorizedAccount', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'blueprintHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'publisher', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'totalAmountConverted', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'beansUnfulfilled', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ConvertUpOrderComplete', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'functionSelector', + internalType: 'bytes4', + type: 'bytes4', + indexed: true, + }, + { name: 'isPaused', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'FunctionPaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + type: 'function', + inputs: [], + name: 'beanstalkPrice', + outputs: [ + { name: '', internalType: 'contract BeanstalkPrice', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'params', + internalType: 'struct ConvertUpBlueprint.ConvertUpBlueprintStruct', + type: 'tuple', + components: [ + { + name: 'convertUpParams', + internalType: 'struct ConvertUpBlueprint.ConvertUpParams', + type: 'tuple', + components: [ + { + name: 'sourceTokenIndices', + internalType: 'uint8[]', + type: 'uint8[]', + }, + { + name: 'totalBeanAmountToConvert', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minBeansConvertPerExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxBeansConvertPerExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'capAmountToBonusCapacity', + internalType: 'bool', + type: 'bool', + }, + { + name: 'minTimeBetweenConverts', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minConvertBonusCapacity', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'grownStalkPerBdvBonusBid', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxPriceToConvertUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minPriceToConvertUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'seedDifference', + internalType: 'int256', + type: 'int256', + }, + { + name: 'maxGrownStalkPerBdvPenalty', + internalType: 'int256', + type: 'int256', + }, + { + name: 'slippageRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + ], + }, + { + name: 'opParams', + internalType: 'struct ConvertUpBlueprint.OperatorParams', + type: 'tuple', + components: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { + name: 'operatorTipAmount', + internalType: 'int256', + type: 'int256', + }, + ], + }, + ], + }, + ], + name: 'convertUpBlueprint', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + name: 'functionPaused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'orderHash', internalType: 'bytes32', type: 'bytes32' }], + name: 'getBeansLeftToConvert', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'orderHash', internalType: 'bytes32', type: 'bytes32' }], + name: 'getLastExecutedTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'orderInfo', + outputs: [ + { + name: 'lastExecutedTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'beansLeftToConvert', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'pauseFunction', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'siloHelpers', + outputs: [ + { name: '', internalType: 'contract SiloHelpers', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'tractorHelpers', + outputs: [ + { name: '', internalType: 'contract TractorHelpers', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'unpauseFunction', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'params', + internalType: 'struct ConvertUpBlueprint.ConvertUpBlueprintStruct', + type: 'tuple', + components: [ + { + name: 'convertUpParams', + internalType: 'struct ConvertUpBlueprint.ConvertUpParams', + type: 'tuple', + components: [ + { + name: 'sourceTokenIndices', + internalType: 'uint8[]', + type: 'uint8[]', + }, + { + name: 'totalBeanAmountToConvert', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minBeansConvertPerExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxBeansConvertPerExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'capAmountToBonusCapacity', + internalType: 'bool', + type: 'bool', + }, + { + name: 'minTimeBetweenConverts', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minConvertBonusCapacity', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'grownStalkPerBdvBonusBid', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxPriceToConvertUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minPriceToConvertUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'seedDifference', + internalType: 'int256', + type: 'int256', + }, + { + name: 'maxGrownStalkPerBdvPenalty', + internalType: 'int256', + type: 'int256', + }, + { + name: 'slippageRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + ], + }, + { + name: 'opParams', + internalType: 'struct ConvertUpBlueprint.OperatorParams', + type: 'tuple', + components: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { + name: 'operatorTipAmount', + internalType: 'int256', + type: 'int256', + }, + ], + }, + ], + }, + { name: 'orderHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'blueprintPublisher', internalType: 'address', type: 'address' }, + ], + name: 'validateParamsAndReturnBeanstalkState', + outputs: [ + { name: 'bonusStalkPerBdv', internalType: 'uint256', type: 'uint256' }, + { name: 'beansLeftToConvert', internalType: 'uint256', type: 'uint256' }, + { + name: 'beansToConvertThisExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'withdrawalPlan', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'paramsArray', + internalType: 'struct ConvertUpBlueprint.ConvertUpBlueprintStruct[]', + type: 'tuple[]', + components: [ + { + name: 'convertUpParams', + internalType: 'struct ConvertUpBlueprint.ConvertUpParams', + type: 'tuple', + components: [ + { + name: 'sourceTokenIndices', + internalType: 'uint8[]', + type: 'uint8[]', + }, + { + name: 'totalBeanAmountToConvert', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minBeansConvertPerExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxBeansConvertPerExecution', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'capAmountToBonusCapacity', + internalType: 'bool', + type: 'bool', + }, + { + name: 'minTimeBetweenConverts', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minConvertBonusCapacity', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'grownStalkPerBdvBonusBid', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxPriceToConvertUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minPriceToConvertUp', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'seedDifference', + internalType: 'int256', + type: 'int256', + }, + { + name: 'maxGrownStalkPerBdvPenalty', + internalType: 'int256', + type: 'int256', + }, + { + name: 'slippageRatio', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + ], + }, + { + name: 'opParams', + internalType: 'struct ConvertUpBlueprint.OperatorParams', + type: 'tuple', + components: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { + name: 'operatorTipAmount', + internalType: 'int256', + type: 'int256', + }, + ], + }, + ], + }, + { name: 'orderHashes', internalType: 'bytes32[]', type: 'bytes32[]' }, + { + name: 'blueprintPublishers', + internalType: 'address[]', + type: 'address[]', + }, + ], + name: 'validateParamsAndReturnBeanstalkStateArray', + outputs: [ + { + name: 'validOrderHashes', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'pure', + }, +] as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const convertUpBlueprintAddress = { + 1337: '0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca', + 8453: '0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca', + 31337: '0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca', + 41337: '0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca', +} as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const convertUpBlueprintConfig = { + address: convertUpBlueprintAddress, + abi: convertUpBlueprintAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// depot +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const depotAbi = [ + { + type: 'function', + inputs: [ + { + name: 'pipes', + internalType: 'struct AdvancedPipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + { name: 'clipboard', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'advancedPipe', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC1155', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'batchTransferERC1155', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'etherPipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }], + name: 'farm', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'pipes', + internalType: 'struct PipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'multiPipe', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permitDeposit', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permitDeposits', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC20Permit', type: 'address' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permitERC20', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC4494', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'sig', internalType: 'bytes', type: 'bytes' }, + ], + name: 'permitERC721', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permitToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'pipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'readPipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferDeposit', + outputs: [{ name: 'bdv', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'transferDeposits', + outputs: [{ name: 'bdvs', internalType: 'uint256[]', type: 'uint256[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC1155', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferERC1155', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC721', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferERC721', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract IERC20', type: 'address' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'fromMode', internalType: 'enum From', type: 'uint8' }, + { name: 'toMode', internalType: 'enum To', type: 'uint8' }, + ], + name: 'transferToken', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'pure', + }, + { type: 'receive', stateMutability: 'payable' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const depotAddress = { + 1: '0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2', + 1337: '0x02F7c20dabC251f35272492177E177035C21269B', + 8453: '0x02F7c20dabC251f35272492177E177035C21269B', + 31337: '0x02F7c20dabC251f35272492177E177035C21269B', + 41337: '0x02F7c20dabC251f35272492177E177035C21269B', + 42161: '0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const depotConfig = { address: depotAddress, abi: depotAbi } as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// farmer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const farmerAbi = [ + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfSop', + outputs: [ + { + name: 'sop', + internalType: 'struct SiloGettersFacet.AccountSeasonOfPlenty', + type: 'tuple', + components: [ + { name: 'lastRain', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSop', internalType: 'uint32', type: 'uint32' }, + { name: 'roots', internalType: 'uint256', type: 'uint256' }, + { + name: 'farmerSops', + internalType: 'struct SiloGettersFacet.FarmerSops[]', + type: 'tuple[]', + components: [ + { name: 'well', internalType: 'address', type: 'address' }, + { + name: 'wellsPlenty', + internalType: 'struct PerWellPlenty', + type: 'tuple', + components: [ + { + name: 'plentyPerRoot', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'plenty', internalType: 'uint256', type: 'uint256' }, + { + name: '_buffer', + internalType: 'bytes32[4]', + type: 'bytes32[4]', + }, + ], + }, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'balanceOfGrownStalk', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOfEarnedBeans', + outputs: [{ name: 'beans', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'fieldId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getPlotsFromAccount', + outputs: [ + { + name: 'plots', + internalType: 'struct FieldFacet.Plot[]', + type: 'tuple[]', + components: [ + { name: 'index', internalType: 'uint256', type: 'uint256' }, + { name: 'pods', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + ], + name: 'balanceOfGrownStalkMultiple', + outputs: [ + { name: 'grownStalks', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + ], + name: 'getMowStatus', + outputs: [ + { + name: 'mowStatuses', + internalType: 'struct MowStatus[]', + type: 'tuple[]', + components: [ + { name: 'lastStem', internalType: 'int96', type: 'int96' }, + { name: 'bdv', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + stateMutability: 'view', + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const farmerAddress = { + 1: '0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5', + 1337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 8453: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 31337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 41337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 42161: '0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const farmerConfig = { address: farmerAddress, abi: farmerAbi } as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// junction +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const junctionAbi = [ + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'add', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'selector', internalType: 'uint256', type: 'uint256' }, + { name: 'options', internalType: 'bytes32[]', type: 'bytes32[]' }, + ], + name: 'bytes32Switch', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'condition', internalType: 'bool', type: 'bool' }], + name: 'check', + outputs: [], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'div', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'eq', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'gt', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'gte', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'lt', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'lte', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mod', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mul', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + { name: 'c', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mulDiv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'neq', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'sub', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, +] as const + +export const junctionAddress = + '0x5A5A5AF07D8a389472AdC1E60aA71BAC89Fcff8b' as const + +export const junctionConfig = { + address: junctionAddress, + abi: junctionAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// pipeline +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const pipelineAbi = [ + { + type: 'function', + inputs: [ + { + name: 'pipes', + internalType: 'struct AdvancedPipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + { name: 'clipboard', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'advancedPipe', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { + name: 'pipes', + internalType: 'struct PipeCall[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'multiPipe', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'uint256[]', type: 'uint256[]' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155BatchReceived', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC721Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'p', + internalType: 'struct PipeCall', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'pipe', + outputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + stateMutability: 'pure', + }, + { type: 'receive', stateMutability: 'payable' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const pipelineAddress = { + 1: '0xb1bE0000C6B3C62749b5F0c92480146452D15423', + 1337: '0xb1bE0001f5a373b69b1E132b420e6D9687155e80', + 8453: '0xb1bE0001f5a373b69b1E132b420e6D9687155e80', + 31337: '0xb1bE0001f5a373b69b1E132b420e6D9687155e80', + 41337: '0xb1bE0001f5a373b69b1E132b420e6D9687155e80', + 42161: '0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const pipelineConfig = { + address: pipelineAddress, + abi: pipelineAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// seasonFacetView +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const seasonFacetViewAbi = [ + { + type: 'function', + inputs: [], + name: 'time', + outputs: [ + { + name: '', + internalType: 'struct Season', + type: 'tuple', + components: [ + { name: 'current', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSop', internalType: 'uint32', type: 'uint32' }, + { name: 'lastSopSeason', internalType: 'uint32', type: 'uint32' }, + { name: 'rainStart', internalType: 'uint32', type: 'uint32' }, + { name: 'raining', internalType: 'bool', type: 'bool' }, + { name: 'sunriseBlock', internalType: 'uint64', type: 'uint64' }, + { name: 'abovePeg', internalType: 'bool', type: 'bool' }, + { name: 'start', internalType: 'uint256', type: 'uint256' }, + { name: 'period', internalType: 'uint256', type: 'uint256' }, + { name: 'timestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_buffer', internalType: 'bytes32[8]', type: 'bytes32[8]' }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSeasonTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'seasonTime', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const seasonFacetViewAddress = { + 1: '0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5', + 1337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 8453: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 31337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 41337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 42161: '0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const seasonFacetViewConfig = { + address: seasonFacetViewAddress, + abi: seasonFacetViewAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// silo +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const siloAbi = [ + { + type: 'function', + inputs: [ + { name: 'tokenIn', internalType: 'address', type: 'address' }, + { name: 'tokenOut', internalType: 'address', type: 'address' }, + { name: 'amountIn', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getAmountOut', + outputs: [{ name: 'amountOut', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const siloAddress = { + 1: '0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5', + 1337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 8453: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 31337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 41337: '0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f', + 42161: '0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const siloConfig = { address: siloAddress, abi: siloAbi } as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// siloHelpers +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const siloHelpersAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_beanstalk', internalType: 'address', type: 'address' }, + { name: '_tractorHelpers', internalType: 'address', type: 'address' }, + { name: '_priceManipulation', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'depositId', internalType: 'uint256', type: 'uint256' }], + name: 'getAddressAndStem', + outputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getBeanAmountAvailable', + outputs: [ + { name: 'beanAmountAvailable', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'minStem', internalType: 'int96', type: 'int96' }, + ], + name: 'getDepositStemsAndAmountsToWithdraw', + outputs: [ + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'availableAmount', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { + name: 'filterParams', + internalType: 'struct LibSiloHelpers.FilterParams', + type: 'tuple', + components: [ + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minStem', internalType: 'int96', type: 'int96' }, + { + name: 'excludeGerminatingDeposits', + internalType: 'bool', + type: 'bool', + }, + { name: 'excludeBean', internalType: 'bool', type: 'bool' }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + { + name: 'lowGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'maxStem', internalType: 'int96', type: 'int96' }, + { name: 'seedDifference', internalType: 'int256', type: 'int256' }, + ], + }, + { + name: 'excludingPlan', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'getDepositStemsAndAmountsToWithdraw', + outputs: [ + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'availableAmount', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getSortedDeposits', + outputs: [ + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTokenIndex', + outputs: [{ name: 'index', internalType: 'uint8', type: 'uint8' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'getUserDepositedTokens', + outputs: [ + { name: 'depositedTokens', internalType: 'address[]', type: 'address[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWhitelistStatusAddresses', + outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'targetAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'filterParams', + internalType: 'struct LibSiloHelpers.FilterParams', + type: 'tuple', + components: [ + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minStem', internalType: 'int96', type: 'int96' }, + { + name: 'excludeGerminatingDeposits', + internalType: 'bool', + type: 'bool', + }, + { name: 'excludeBean', internalType: 'bool', type: 'bool' }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + { + name: 'lowGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'maxStem', internalType: 'int96', type: 'int96' }, + { name: 'seedDifference', internalType: 'int256', type: 'int256' }, + ], + }, + ], + name: 'getWithdrawalPlan', + outputs: [ + { + name: 'plan', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'targetAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'filterParams', + internalType: 'struct LibSiloHelpers.FilterParams', + type: 'tuple', + components: [ + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minStem', internalType: 'int96', type: 'int96' }, + { + name: 'excludeGerminatingDeposits', + internalType: 'bool', + type: 'bool', + }, + { name: 'excludeBean', internalType: 'bool', type: 'bool' }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + { + name: 'lowGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'maxStem', internalType: 'int96', type: 'int96' }, + { name: 'seedDifference', internalType: 'int256', type: 'int256' }, + ], + }, + { + name: 'excludingPlan', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'getWithdrawalPlanExcludingPlan', + outputs: [ + { + name: 'plan', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'slippageRatio', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isValidSlippage', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'sortDeposits', + outputs: [ + { name: 'updatedTokens', internalType: 'address[]', type: 'address[]' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'targetAmount', internalType: 'uint256', type: 'uint256' }, + { + name: 'filterParams', + internalType: 'struct LibSiloHelpers.FilterParams', + type: 'tuple', + components: [ + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'minStem', internalType: 'int96', type: 'int96' }, + { + name: 'excludeGerminatingDeposits', + internalType: 'bool', + type: 'bool', + }, + { name: 'excludeBean', internalType: 'bool', type: 'bool' }, + { + name: 'lowStalkDeposits', + internalType: 'enum LibSiloHelpers.Mode', + type: 'uint8', + }, + { + name: 'lowGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { name: 'maxStem', internalType: 'int96', type: 'int96' }, + { name: 'seedDifference', internalType: 'int256', type: 'int256' }, + ], + }, + { name: 'slippageRatio', internalType: 'uint256', type: 'uint256' }, + { name: 'mode', internalType: 'enum LibTransfer.To', type: 'uint8' }, + { + name: 'plan', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'withdrawBeansFromSources', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'payable', + }, +] as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const siloHelpersAddress = { + 1337: '0xE145082A7C5EDd1767f8148A6c29a17488d1eb31', + 8453: '0xE145082A7C5EDd1767f8148A6c29a17488d1eb31', + 31337: '0xE145082A7C5EDd1767f8148A6c29a17488d1eb31', + 41337: '0xE145082A7C5EDd1767f8148A6c29a17488d1eb31', +} as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const siloHelpersConfig = { + address: siloHelpersAddress, + abi: siloHelpersAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// sowBlueprintv0 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const sowBlueprintv0Abi = [ + { + type: 'constructor', + inputs: [ + { name: '_beanstalk', internalType: 'address', type: 'address' }, + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_tractorHelpers', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'error', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'OwnableInvalidOwner', + }, + { + type: 'error', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'OwnableUnauthorizedAccount', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'functionSelector', + internalType: 'bytes4', + type: 'bytes4', + indexed: true, + }, + { name: 'isPaused', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'FunctionPaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'blueprintHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'publisher', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'totalAmountSown', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'amountUnfulfilled', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SowOrderComplete', + }, + { + type: 'function', + inputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + name: 'functionPaused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'orderHash', internalType: 'bytes32', type: 'bytes32' }], + name: 'getLastExecutedSeason', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'orderHash', internalType: 'bytes32', type: 'bytes32' }], + name: 'getPintosLeftToSow', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'pauseFunction', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'params', + internalType: 'struct SowBlueprintv0.SowBlueprintStruct', + type: 'tuple', + components: [ + { + name: 'sowParams', + internalType: 'struct SowBlueprintv0.SowParams', + type: 'tuple', + components: [ + { + name: 'sourceTokenIndices', + internalType: 'uint8[]', + type: 'uint8[]', + }, + { + name: 'sowAmounts', + internalType: 'struct SowBlueprintv0.SowAmounts', + type: 'tuple', + components: [ + { + name: 'totalAmountToSow', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minAmountToSowPerSeason', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxAmountToSowPerSeason', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { name: 'minTemp', internalType: 'uint256', type: 'uint256' }, + { + name: 'maxPodlineLength', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'runBlocksAfterSunrise', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'slippageRatio', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: 'opParams', + internalType: 'struct SowBlueprintv0.OperatorParams', + type: 'tuple', + components: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { + name: 'operatorTipAmount', + internalType: 'int256', + type: 'int256', + }, + ], + }, + ], + }, + ], + name: 'sowBlueprintv0', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [], + name: 'tractorHelpers', + outputs: [ + { name: '', internalType: 'contract TractorHelpers', type: 'address' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'unpauseFunction', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: 'params', + internalType: 'struct SowBlueprintv0.SowBlueprintStruct', + type: 'tuple', + components: [ + { + name: 'sowParams', + internalType: 'struct SowBlueprintv0.SowParams', + type: 'tuple', + components: [ + { + name: 'sourceTokenIndices', + internalType: 'uint8[]', + type: 'uint8[]', + }, + { + name: 'sowAmounts', + internalType: 'struct SowBlueprintv0.SowAmounts', + type: 'tuple', + components: [ + { + name: 'totalAmountToSow', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minAmountToSowPerSeason', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxAmountToSowPerSeason', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { name: 'minTemp', internalType: 'uint256', type: 'uint256' }, + { + name: 'maxPodlineLength', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'runBlocksAfterSunrise', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'slippageRatio', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: 'opParams', + internalType: 'struct SowBlueprintv0.OperatorParams', + type: 'tuple', + components: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { + name: 'operatorTipAmount', + internalType: 'int256', + type: 'int256', + }, + ], + }, + ], + }, + { name: 'orderHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'blueprintPublisher', internalType: 'address', type: 'address' }, + ], + name: 'validateParamsAndReturnBeanstalkState', + outputs: [ + { name: 'availableSoil', internalType: 'uint256', type: 'uint256' }, + { name: 'beanToken', internalType: 'address', type: 'address' }, + { name: 'currentSeason', internalType: 'uint32', type: 'uint32' }, + { name: 'pintoLeftToSow', internalType: 'uint256', type: 'uint256' }, + { name: 'totalAmountToSow', internalType: 'uint256', type: 'uint256' }, + { name: 'totalBeansNeeded', internalType: 'uint256', type: 'uint256' }, + { + name: 'plan', + internalType: 'struct LibTractorHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: 'paramsArray', + internalType: 'struct SowBlueprintv0.SowBlueprintStruct[]', + type: 'tuple[]', + components: [ + { + name: 'sowParams', + internalType: 'struct SowBlueprintv0.SowParams', + type: 'tuple', + components: [ + { + name: 'sourceTokenIndices', + internalType: 'uint8[]', + type: 'uint8[]', + }, + { + name: 'sowAmounts', + internalType: 'struct SowBlueprintv0.SowAmounts', + type: 'tuple', + components: [ + { + name: 'totalAmountToSow', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'minAmountToSowPerSeason', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxAmountToSowPerSeason', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { name: 'minTemp', internalType: 'uint256', type: 'uint256' }, + { + name: 'maxPodlineLength', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'maxGrownStalkPerBdv', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'runBlocksAfterSunrise', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'slippageRatio', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: 'opParams', + internalType: 'struct SowBlueprintv0.OperatorParams', + type: 'tuple', + components: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { + name: 'operatorTipAmount', + internalType: 'int256', + type: 'int256', + }, + ], + }, + ], + }, + { name: 'orderHashes', internalType: 'bytes32[]', type: 'bytes32[]' }, + { + name: 'blueprintPublishers', + internalType: 'address[]', + type: 'address[]', + }, + ], + name: 'validateParamsAndReturnBeanstalkStateArray', + outputs: [ + { + name: 'validOrderHashes', + internalType: 'bytes32[]', + type: 'bytes32[]', + }, + ], + stateMutability: 'view', + }, +] as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const sowBlueprintv0Address = { + 1337: '0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B', + 8453: '0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B', + 31337: '0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B', + 41337: '0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B', +} as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const sowBlueprintv0Config = { + address: sowBlueprintv0Address, + abi: sowBlueprintv0Abi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// tractorHelpers +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const tractorHelpersAbi = [ + { + type: 'constructor', + inputs: [ + { name: '_beanstalk', internalType: 'address', type: 'address' }, + { name: '_beanstalkPrice', internalType: 'address', type: 'address' }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'rewardType', + internalType: 'enum TractorHelpers.RewardType', + type: 'uint8', + indexed: false, + }, + { + name: 'publisher', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'token', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'int256', + type: 'int256', + indexed: false, + }, + ], + name: 'OperatorReward', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'add', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'selector', internalType: 'uint256', type: 'uint256' }, + { name: 'options', internalType: 'bytes32[]', type: 'bytes32[]' }, + ], + name: 'bytes32Switch', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'condition', internalType: 'bool', type: 'bool' }], + name: 'check', + outputs: [], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'plans', + internalType: 'struct LibSiloHelpers.WithdrawalPlan[]', + type: 'tuple[]', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'combineWithdrawalPlans', + outputs: [ + { + name: '', + internalType: 'struct LibSiloHelpers.WithdrawalPlan', + type: 'tuple', + components: [ + { + name: 'sourceTokens', + internalType: 'address[]', + type: 'address[]', + }, + { name: 'stems', internalType: 'int96[][]', type: 'int96[][]' }, + { name: 'amounts', internalType: 'uint256[][]', type: 'uint256[][]' }, + { + name: 'availableBeans', + internalType: 'uint256[]', + type: 'uint256[]', + }, + { + name: 'totalAvailableBeans', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'div', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'eq', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{ name: 'depositId', internalType: 'uint256', type: 'uint256' }], + name: 'getAddressAndStem', + outputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'stem', internalType: 'int96', type: 'int96' }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'getBeanstalkPrice', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getHighestSeedToken', + outputs: [ + { name: 'highestSeedToken', internalType: 'address', type: 'address' }, + { name: 'seedAmount', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'beanAmount', internalType: 'uint256', type: 'uint256' }, + { name: 'well', internalType: 'address', type: 'address' }, + ], + name: 'getLPTokensToWithdrawForBeans', + outputs: [{ name: 'lpAmount', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getLowestSeedToken', + outputs: [ + { name: 'lowestSeedToken', internalType: 'address', type: 'address' }, + { name: 'seedAmount', internalType: 'uint256', type: 'uint256' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + ], + name: 'getSortedDeposits', + outputs: [ + { name: 'stems', internalType: 'int96[]', type: 'int96[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getSortedWhitelistedTokensBySeeds', + outputs: [ + { name: 'tokens', internalType: 'address[]', type: 'address[]' }, + { name: 'seeds', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'token', internalType: 'address', type: 'address' }], + name: 'getTokenIndex', + outputs: [{ name: 'index', internalType: 'uint8', type: 'uint8' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'excludeBean', internalType: 'bool', type: 'bool' }], + name: 'getTokensAscendingPrice', + outputs: [ + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'prices', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTokensAscendingPrice', + outputs: [ + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'prices', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{ name: 'excludeBean', internalType: 'bool', type: 'bool' }], + name: 'getTokensAscendingSeeds', + outputs: [ + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'seeds', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getTokensAscendingSeeds', + outputs: [ + { name: 'tokenIndices', internalType: 'uint8[]', type: 'uint8[]' }, + { name: 'seeds', internalType: 'uint256[]', type: 'uint256[]' }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getWhitelistStatusAddresses', + outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'gt', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'gte', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { + name: 'whitelistedOperators', + internalType: 'address[]', + type: 'address[]', + }, + ], + name: 'isOperatorWhitelisted', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'lt', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'lte', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mod', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mul', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + { name: 'c', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mulDiv', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'neq', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'a', internalType: 'uint256', type: 'uint256' }, + { name: 'b', internalType: 'uint256', type: 'uint256' }, + ], + name: 'sub', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'publisher', internalType: 'address', type: 'address' }, + { name: 'tipAddress', internalType: 'address', type: 'address' }, + { name: 'tipAmount', internalType: 'int256', type: 'int256' }, + { name: 'from', internalType: 'enum LibTransfer.From', type: 'uint8' }, + { name: 'to', internalType: 'enum LibTransfer.To', type: 'uint8' }, + ], + name: 'tip', + outputs: [], + stateMutability: 'nonpayable', + }, +] as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const tractorHelpersAddress = { + 1337: '0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6', + 8453: '0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6', + 31337: '0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6', + 41337: '0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6', +} as const + +/** + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const tractorHelpersConfig = { + address: tractorHelpersAddress, + abi: tractorHelpersAbi, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// React +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_undefined = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"owner"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Owner = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'owner', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"ownerCandidate"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_OwnerCandidate = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'ownerCandidate', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"facetAddress"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_FacetAddress = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'facetAddress', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"facetAddresses"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_FacetAddresses = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'facetAddresses', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"facetFunctionSelectors"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_FacetFunctionSelectors = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'facetFunctionSelectors', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"facets"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Facets = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'facets', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"supportsInterface"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_SupportsInterface = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBlueprintHash"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBlueprintHash = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBlueprintHash', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBlueprintNonce"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBlueprintNonce = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBlueprintNonce', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getCounter"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetCounter = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getCounter', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getCurrentBlueprintHash"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetCurrentBlueprintHash = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getCurrentBlueprintHash', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPublisherCounter"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPublisherCounter = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPublisherCounter', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTractorVersion"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTractorVersion = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTractorVersion', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"operator"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Operator = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'operator', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"tractorUser"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TractorUser = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'tractorUser' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAllBalance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAllBalance = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAllBalance', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAllBalances"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAllBalances = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAllBalances', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBalance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBalance = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBalance', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBalances"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBalances = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'getBalances' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getExternalBalance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetExternalBalance = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getExternalBalance', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getExternalBalances"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetExternalBalances = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getExternalBalances', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getInternalBalance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetInternalBalance = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getInternalBalance', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getInternalBalances"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetInternalBalances = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getInternalBalances', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_OnErc1155BatchReceived = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'onERC1155BatchReceived', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"onERC1155Received"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_OnErc1155Received = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'onERC1155Received', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"tokenAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TokenAllowance = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'tokenAllowance', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"readPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_ReadPipe = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'readPipe', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"activeField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_ActiveField = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'activeField' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfPods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfPods = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfPods', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"beanSown"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BeanSown = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'beanSown', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"fieldCount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_FieldCount = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'fieldCount', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"floodHarvestablePods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_FloodHarvestablePods = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'floodHarvestablePods', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPlotIndexesFromAccount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPlotIndexesFromAccount = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPlotIndexesFromAccount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPlotsFromAccount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPlotsFromAccount = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPlotsFromAccount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSoilMostlySoldOutThreshold"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSoilMostlySoldOutThreshold = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSoilMostlySoldOutThreshold', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSoilSoldOutThreshold"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSoilSoldOutThreshold = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSoilSoldOutThreshold', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"harvestableIndex"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_HarvestableIndex = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'harvestableIndex', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"initialSoil"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_InitialSoil = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'initialSoil' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"isHarvesting"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_IsHarvesting = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'isHarvesting', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"maxTemperature"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_MaxTemperature = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'maxTemperature', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"plot"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Plot = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'plot', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"podIndex"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_PodIndex = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'podIndex', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"remainingPods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_RemainingPods = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'remainingPods', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"temperature"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Temperature = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'temperature' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalHarvestable"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalHarvestable = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalHarvestable', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalHarvestableForActiveField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalHarvestableForActiveField = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalHarvestableForActiveField', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalHarvested"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalHarvested = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalHarvested', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalPods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalPods = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalPods', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalSoil"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalSoil = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalSoil', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalUnharvestable"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalUnharvestable = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalUnharvestable', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalUnharvestableForActiveField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalUnharvestableForActiveField = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalUnharvestableForActiveField', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"allowancePods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_AllowancePods = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'allowancePods', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getOrderId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetOrderId = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getOrderId', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPodListing = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPodListing', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPodOrder = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'getPodOrder' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugePointImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugePointImplementationForToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugePointImplementationForToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLiquidityWeightImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLiquidityWeightImplementationForToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLiquidityWeightImplementationForToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getOracleImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetOracleImplementationForToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getOracleImplementationForToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSiloTokens"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSiloTokens = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSiloTokens', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWhitelistStatus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWhitelistStatus = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWhitelistStatus', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWhitelistStatuses"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWhitelistStatuses = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWhitelistStatuses', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWhitelistedLpTokens"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWhitelistedLpTokens = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWhitelistedLpTokens', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWhitelistedTokens"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWhitelistedTokens = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWhitelistedTokens', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWhitelistedWellLpTokens"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWhitelistedWellLpTokens = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWhitelistedWellLpTokens', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOf"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOf = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOf', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfBatch"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfBatch = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfBatch', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfDepositedBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfDepositedBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfDepositedBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfEarnedBeans"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfEarnedBeans = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfEarnedBeans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfEarnedStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfEarnedStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfEarnedStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfFinishedGerminatingStalkAndRoots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfFinishedGerminatingStalkAndRoots = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfFinishedGerminatingStalkAndRoots', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfGerminatingStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfGerminatingStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfGerminatingStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfGrownStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfGrownStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfGrownStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfGrownStalkMultiple"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfGrownStalkMultiple = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfGrownStalkMultiple', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfPlantableSeeds"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfPlantableSeeds = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfPlantableSeeds', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfPlenty = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfPlenty', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfRainRoots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfRainRoots = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfRainRoots', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfRoots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfRoots = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfRoots', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfSop"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfSop = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfSop', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"balanceOfYoungAndMatureGerminatingStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BalanceOfYoungAndMatureGerminatingStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'balanceOfYoungAndMatureGerminatingStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"bdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Bdv = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'bdv', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"bdvs"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Bdvs = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'bdvs', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"calculateStemForTokenFromGrownStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CalculateStemForTokenFromGrownStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'calculateStemForTokenFromGrownStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAddressAndStem"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAddressAndStem = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAddressAndStem', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBeanIndex"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBeanIndex = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBeanIndex', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBeanToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBeanToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBeanToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetDeposit = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getDeposit', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getDepositId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetDepositId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getDepositId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getDepositsForAccount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetDepositsForAccount = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getDepositsForAccount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getEvenGerminating"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetEvenGerminating = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getEvenGerminating', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingRootsForSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingRootsForSeason = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingRootsForSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingStalkAndRootsForSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingStalkAndRootsForSeason = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingStalkAndRootsForSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingStalkForSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingStalkForSeason = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingStalkForSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingStem"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingStem = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingStem', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingStems"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingStems = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingStems', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingTotalDeposited"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingTotalDeposited = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingTotalDeposited', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGerminatingTotalDepositedBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGerminatingTotalDepositedBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGerminatingTotalDepositedBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getHighestNonGerminatingStem"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetHighestNonGerminatingStem = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getHighestNonGerminatingStem', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getHighestNonGerminatingStems"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetHighestNonGerminatingStems = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getHighestNonGerminatingStems', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getIndexForDepositId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetIndexForDepositId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getIndexForDepositId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLastMowedStem"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLastMowedStem = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLastMowedStem', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMowStatus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMowStatus = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMowStatus', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getNonBeanTokenAndIndexFromWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetNonBeanTokenAndIndexFromWell = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getNonBeanTokenAndIndexFromWell', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getOddGerminating"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetOddGerminating = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getOddGerminating', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSeedsForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSeedsForToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSeedsForToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getStemTips"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetStemTips = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'getStemTips' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTokenDepositIdsForAccount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTokenDepositIdsForAccount = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTokenDepositIdsForAccount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTokenDepositsForAccount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTokenDepositsForAccount = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTokenDepositsForAccount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalDeposited"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalDeposited = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalDeposited', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalDepositedBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalDepositedBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalDepositedBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalGerminatingAmount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalGerminatingAmount = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalGerminatingAmount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalGerminatingBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalGerminatingBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalGerminatingBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalGerminatingStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalGerminatingStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalGerminatingStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalSiloDeposited"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalSiloDeposited = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalSiloDeposited', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalSiloDepositedBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalSiloDepositedBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalSiloDepositedBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getYoungAndMatureGerminatingTotalStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetYoungAndMatureGerminatingTotalStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getYoungAndMatureGerminatingTotalStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"grownStalkForDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GrownStalkForDeposit = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'grownStalkForDeposit', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"lastSeasonOfPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_LastSeasonOfPlenty = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'lastSeasonOfPlenty', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"lastUpdate"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_LastUpdate = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'lastUpdate', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"stalkEarnedPerSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_StalkEarnedPerSeason = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'stalkEarnedPerSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"stemTipForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_StemTipForToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'stemTipForToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"tokenSettings"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TokenSettings = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'tokenSettings', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalEarnedBeans"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalEarnedBeans = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalEarnedBeans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalRainRoots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalRainRoots = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalRainRoots', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalRoots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalRoots = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalRoots', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalStalk = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalStalk', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"calculateDeltaBFromReserves"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CalculateDeltaBFromReserves = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'calculateDeltaBFromReserves', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"calculateStalkPenalty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CalculateStalkPenalty = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'calculateStalkPenalty', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cappedReservesDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CappedReservesDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cappedReservesDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"downPenalizedGrownStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_DownPenalizedGrownStalk = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'downPenalizedGrownStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAmountOut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAmountOut = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAmountOut', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getCalculatedBonusStalkPerBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetCalculatedBonusStalkPerBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getCalculatedBonusStalkPerBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getConvertStalkPerBdvBonusAndMaximumCapacity"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetConvertStalkPerBdvBonusAndMaximumCapacity = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getConvertStalkPerBdvBonusAndMaximumCapacity', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getConvertStalkPerBdvBonusAndRemainingCapacity"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetConvertStalkPerBdvBonusAndRemainingCapacity = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getConvertStalkPerBdvBonusAndRemainingCapacity', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMaxAmountIn"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMaxAmountIn = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMaxAmountIn', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMaxAmountInAtRate"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMaxAmountInAtRate = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMaxAmountInAtRate', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getOverallConvertCapacity"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetOverallConvertCapacity = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getOverallConvertCapacity', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWellConvertCapacity"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWellConvertCapacity = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWellConvertCapacity', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"overallCappedDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_OverallCappedDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'overallCappedDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"overallCurrentDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_OverallCurrentDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'overallCurrentDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"scaledDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_ScaledDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'scaledDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"stalkBonus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_StalkBonus = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'stalkBonus', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"beanToBDV"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_BeanToBdv = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'beanToBDV', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"wellBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_WellBdv = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'wellBdv', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"depositAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_DepositAllowance = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'depositAllowance', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"isApprovedForAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_IsApprovedForAll = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'isApprovedForAll', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"determineReward"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_DetermineReward = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'determineReward', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"check"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Check = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'check', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBeansFromPoints"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBeansFromPoints = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBeansFromPoints', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getShipmentPlans"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetShipmentPlans = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getShipmentPlans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"abovePeg"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_AbovePeg = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'abovePeg', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cumulativeCurrentDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CumulativeCurrentDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cumulativeCurrentDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAbsBeanToMaxLpRatioChangeFromCaseId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAbsBeanToMaxLpRatioChangeFromCaseId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAbsBeanToMaxLpRatioChangeFromCaseId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAbsTemperatureChangeFromCaseId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAbsTemperatureChangeFromCaseId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAbsTemperatureChangeFromCaseId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getCaseData"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetCaseData = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'getCaseData' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getCases"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetCases = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getCases', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getChangeFromCaseId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetChangeFromCaseId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getChangeFromCaseId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getDeltaPodDemandLowerBound"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetDeltaPodDemandLowerBound = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getDeltaPodDemandLowerBound', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getDeltaPodDemandUpperBound"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetDeltaPodDemandUpperBound = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getDeltaPodDemandUpperBound', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getEvaluationParameters"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetEvaluationParameters = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getEvaluationParameters', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getExcessivePriceThreshold"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetExcessivePriceThreshold = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getExcessivePriceThreshold', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getExtEvaluationParameters"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetExtEvaluationParameters = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getExtEvaluationParameters', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLargestLiqWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLargestLiqWell = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLargestLiqWell', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLpToSupplyRatioLowerBound"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLpToSupplyRatioLowerBound = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLpToSupplyRatioLowerBound', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLpToSupplyRatioOptimal"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLpToSupplyRatioOptimal = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLpToSupplyRatioOptimal', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLpToSupplyRatioUpperBound"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLpToSupplyRatioUpperBound = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLpToSupplyRatioUpperBound', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMaxBeanMaxLpGpPerBdvRatio"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMaxBeanMaxLpGpPerBdvRatio = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMaxBeanMaxLpGpPerBdvRatio', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMinBeanMaxLpGpPerBdvRatio"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMinBeanMaxLpGpPerBdvRatio = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMinBeanMaxLpGpPerBdvRatio', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getOrderLockedBeans"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetOrderLockedBeans = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getOrderLockedBeans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPodRateLowerBound"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPodRateLowerBound = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPodRateLowerBound', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPodRateOptimal"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPodRateOptimal = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPodRateOptimal', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPodRateUpperBound"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPodRateUpperBound = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPodRateUpperBound', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRelBeanToMaxLpRatioChangeFromCaseId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRelBeanToMaxLpRatioChangeFromCaseId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRelBeanToMaxLpRatioChangeFromCaseId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRelTemperatureChangeFromCaseId"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRelTemperatureChangeFromCaseId = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRelTemperatureChangeFromCaseId', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSeasonStruct"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSeasonStruct = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSeasonStruct', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSeasonTimestamp"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSeasonTimestamp = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSeasonTimestamp', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTargetSeasonsToCatchUp"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTargetSeasonsToCatchUp = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTargetSeasonsToCatchUp', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalUsdLiquidity"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalUsdLiquidity = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalUsdLiquidity', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalWeightedUsdLiquidity"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalWeightedUsdLiquidity = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTotalWeightedUsdLiquidity', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTwaLiquidityForWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTwaLiquidityForWell = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTwaLiquidityForWell', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWeightedTwaLiquidityForWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWeightedTwaLiquidityForWell = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWeightedTwaLiquidityForWell', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getWellsByDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetWellsByDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getWellsByDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"paused"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Paused = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'paused', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"plentyPerRoot"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_PlentyPerRoot = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'plentyPerRoot', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"poolCurrentDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_PoolCurrentDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'poolCurrentDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"poolDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_PoolDeltaB = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'poolDeltaB', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"poolDeltaBNoCap"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_PoolDeltaBNoCap = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'poolDeltaBNoCap', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"rain"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Rain = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'rain', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"season"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Season = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'season', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sunriseBlock"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_SunriseBlock = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sunriseBlock', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"time"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Time = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'time', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalDeltaB = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'totalDeltaB' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalDeltaBNoCap"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalDeltaBNoCap = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalDeltaBNoCap', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"totalInstantaneousDeltaB"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_TotalInstantaneousDeltaB = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'totalInstantaneousDeltaB', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"weather"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Weather = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'weather', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"wellOracleSnapshot"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_WellOracleSnapshot = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'wellOracleSnapshot', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getShipmentRoutes"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetShipmentRoutes = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getShipmentRoutes', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"seasonTime"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_SeasonTime = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'seasonTime', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMillionUsdPrice"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMillionUsdPrice = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMillionUsdPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRatiosAndBeanIndex"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRatiosAndBeanIndex = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRatiosAndBeanIndex', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTokenUsdPrice"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTokenUsdPrice = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTokenUsdPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTokenUsdPriceFromExternal"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTokenUsdPriceFromExternal = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTokenUsdPriceFromExternal', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTokenUsdTwap"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTokenUsdTwap = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getTokenUsdTwap', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getUsdTokenPrice"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetUsdTokenPrice = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getUsdTokenPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getUsdTokenPriceFromExternal"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetUsdTokenPriceFromExternal = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getUsdTokenPriceFromExternal', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getUsdTokenTwap"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetUsdTokenTwap = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getUsdTokenTwap', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"maxWeight"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_MaxWeight = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'maxWeight', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"noWeight"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_NoWeight = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'noWeight', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"calcGaugePointsWithParams"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CalcGaugePointsWithParams = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'calcGaugePointsWithParams', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAverageGrownStalkPerBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAverageGrownStalkPerBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAverageGrownStalkPerBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getAverageGrownStalkPerBdvPerSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetAverageGrownStalkPerBdvPerSeason = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getAverageGrownStalkPerBdvPerSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBeanGaugePointsPerBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBeanGaugePointsPerBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBeanGaugePointsPerBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBeanToMaxLpGpPerBdvRatio"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBeanToMaxLpGpPerBdvRatio = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBeanToMaxLpGpPerBdvRatio', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getBeanToMaxLpGpPerBdvRatioScaled"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetBeanToMaxLpGpPerBdvRatioScaled = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getBeanToMaxLpGpPerBdvRatioScaled', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getDeltaPodDemand"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetDeltaPodDemand = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getDeltaPodDemand', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugePoints"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugePoints = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugePoints', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugePointsPerBdvForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugePointsPerBdvForToken = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugePointsPerBdvForToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugePointsPerBdvForWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugePointsPerBdvForWell = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugePointsPerBdvForWell', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugePointsWithParams"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugePointsWithParams = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugePointsWithParams', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGrownStalkIssuedPerGp"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGrownStalkIssuedPerGp = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGrownStalkIssuedPerGp', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGrownStalkIssuedPerSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGrownStalkIssuedPerSeason = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGrownStalkIssuedPerSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLargestGpPerBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLargestGpPerBdv = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLargestGpPerBdv', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getLiquidityToSupplyRatio"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetLiquidityToSupplyRatio = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getLiquidityToSupplyRatio', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getMaxTotalGaugePoints"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetMaxTotalGaugePoints = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getMaxTotalGaugePoints', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getPodRate"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetPodRate = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getPodRate', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getSeedGauge"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetSeedGauge = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getSeedGauge', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getTotalBdv"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetTotalBdv = /*#__PURE__*/ createUseReadContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'getTotalBdv' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"convertDownPenaltyGauge"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_ConvertDownPenaltyGauge = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'convertDownPenaltyGauge', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"convertUpBonusGauge"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_ConvertUpBonusGauge = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'convertUpBonusGauge', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cultivationFactor"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_CultivationFactor = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cultivationFactor', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"defaultGaugePoints"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_DefaultGaugePoints = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'defaultGaugePoints', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getExtremelyFarAbove"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetExtremelyFarAbove = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getExtremelyFarAbove', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getExtremelyFarBelow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetExtremelyFarBelow = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getExtremelyFarBelow', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGauge"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGauge = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGauge', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugeData"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugeData = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugeData', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugeIdResult"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugeIdResult = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugeIdResult', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugeResult"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugeResult = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugeResult', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getGaugeValue"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetGaugeValue = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getGaugeValue', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRelativelyCloseAbove"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRelativelyCloseAbove = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRelativelyCloseAbove', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRelativelyCloseBelow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRelativelyCloseBelow = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRelativelyCloseBelow', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRelativelyFarAbove"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRelativelyFarAbove = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRelativelyFarAbove', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"getRelativelyFarBelow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_GetRelativelyFarBelow = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'getRelativelyFarBelow', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"imageURI"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_ImageUri = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'imageURI', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"name"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Name = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'name', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"symbol"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Symbol = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'symbol', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"uri"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadBeanstalk_Uri = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'uri', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_undefined = /*#__PURE__*/ createUseWriteContract( + { abi: beanstalkAbi, address: beanstalkAddress }, +) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pause"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Pause = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pause', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"unpause"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Unpause = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'unpause', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"claimOwnership"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ClaimOwnership = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'claimOwnership', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferOwnership"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferOwnership = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"diamondCut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_DiamondCut = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'diamondCut', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cancelBlueprint"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_CancelBlueprint = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cancelBlueprint', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"publishRequisition"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_PublishRequisition = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'publishRequisition', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sendTokenToInternalBalance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SendTokenToInternalBalance = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sendTokenToInternalBalance', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"tractor"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Tractor = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'tractor', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updatePublisherCounter"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdatePublisherCounter = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updatePublisherCounter', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateTractorVersion"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateTractorVersion = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateTractorVersion', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"batchTransferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_BatchTransferErc1155 = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'batchTransferERC1155', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferErc1155 = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferERC1155', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferERC721"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferErc721 = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferERC721', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"approveToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ApproveToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'approveToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"decreaseTokenAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_DecreaseTokenAllowance = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'decreaseTokenAllowance', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"increaseTokenAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_IncreaseTokenAllowance = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'increaseTokenAllowance', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferInternalTokenFrom"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferInternalTokenFrom = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferInternalTokenFrom', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"unwrapEth"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UnwrapEth = /*#__PURE__*/ createUseWriteContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'unwrapEth' }, +) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"wrapEth"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_WrapEth = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'wrapEth', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"advancedFarm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_AdvancedFarm = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'advancedFarm', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"farm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Farm = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'farm', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"advancedPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_AdvancedPipe = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'advancedPipe', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"etherPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_EtherPipe = /*#__PURE__*/ createUseWriteContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'etherPipe' }, +) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"multiPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_MultiPipe = /*#__PURE__*/ createUseWriteContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'multiPipe' }, +) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Pipe = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pipe', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"addField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_AddField = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'addField', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"harvest"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Harvest = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'harvest', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"setActiveField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SetActiveField = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'setActiveField', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Sow = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sow', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sowWithMin"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SowWithMin = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sowWithMin', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"approvePods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ApprovePods = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'approvePods', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cancelPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_CancelPodListing = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cancelPodListing', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cancelPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_CancelPodOrder = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cancelPodOrder', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"createPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_CreatePodListing = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'createPodListing', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"createPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_CreatePodOrder = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'createPodOrder', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"fillPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_FillPodListing = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'fillPodListing', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"fillPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_FillPodOrder = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'fillPodOrder', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferPlot"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferPlot = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferPlot', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferPlots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferPlots = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferPlots', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"dewhitelistToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_DewhitelistToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'dewhitelistToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateGaugeForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateGaugeForToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateGaugeForToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateGaugePointImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateGaugePointImplementationForToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateGaugePointImplementationForToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateLiquidityWeightImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateLiquidityWeightImplementationForToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateLiquidityWeightImplementationForToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateOracleImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateOracleImplementationForToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateOracleImplementationForToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateSeedGaugeSettings"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateSeedGaugeSettings = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateSeedGaugeSettings', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateStalkPerBdvPerSeasonForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateStalkPerBdvPerSeasonForToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateStalkPerBdvPerSeasonForToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"whitelistToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_WhitelistToken = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'whitelistToken', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"deposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Deposit = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'deposit', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"safeBatchTransferFrom"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SafeBatchTransferFrom = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"safeTransferFrom"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SafeTransferFrom = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferDeposit = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferDeposit', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_TransferDeposits = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferDeposits', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateSortedDepositIds"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_UpdateSortedDepositIds = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateSortedDepositIds', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"withdrawDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_WithdrawDeposit = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'withdrawDeposit', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"withdrawDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_WithdrawDeposits = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'withdrawDeposits', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pipelineConvert"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_PipelineConvert = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pipelineConvert', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pipelineConvertWithStalkSlippage"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_PipelineConvertWithStalkSlippage = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pipelineConvertWithStalkSlippage', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"convert"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Convert = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'convert', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"convertWithStalkSlippage"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ConvertWithStalkSlippage = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'convertWithStalkSlippage', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"claimAllPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ClaimAllPlenty = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'claimAllPlenty', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"claimPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ClaimPlenty = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'claimPlenty', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Mow = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mow', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_MowAll = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowAll', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowAllMultipleAccounts"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_MowAllMultipleAccounts = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowAllMultipleAccounts', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowMultiple"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_MowMultiple = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowMultiple', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowMultipleAccounts"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_MowMultipleAccounts = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowMultipleAccounts', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"plant"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Plant = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'plant', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"approveDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_ApproveDeposit = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'approveDeposit', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"decreaseDepositAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_DecreaseDepositAllowance = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'decreaseDepositAllowance', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"increaseDepositAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_IncreaseDepositAllowance = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'increaseDepositAllowance', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"setApprovalForAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SetApprovalForAll = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"gm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Gm = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'gm', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"setShipmentRoutes"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_SetShipmentRoutes = + /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'setShipmentRoutes', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sunrise"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWriteBeanstalk_Sunrise = /*#__PURE__*/ createUseWriteContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sunrise', +}) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pause"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Pause = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pause', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"unpause"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Unpause = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'unpause', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"claimOwnership"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ClaimOwnership = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'claimOwnership', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferOwnership"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferOwnership = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"diamondCut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_DiamondCut = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'diamondCut', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cancelBlueprint"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_CancelBlueprint = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cancelBlueprint', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"publishRequisition"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_PublishRequisition = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'publishRequisition', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sendTokenToInternalBalance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SendTokenToInternalBalance = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sendTokenToInternalBalance', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"tractor"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Tractor = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'tractor', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updatePublisherCounter"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdatePublisherCounter = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updatePublisherCounter', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateTractorVersion"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateTractorVersion = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateTractorVersion', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"batchTransferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_BatchTransferErc1155 = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'batchTransferERC1155', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferErc1155 = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferERC1155', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferERC721"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferErc721 = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferERC721', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"approveToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ApproveToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'approveToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"decreaseTokenAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_DecreaseTokenAllowance = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'decreaseTokenAllowance', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"increaseTokenAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_IncreaseTokenAllowance = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'increaseTokenAllowance', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferInternalTokenFrom"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferInternalTokenFrom = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferInternalTokenFrom', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"unwrapEth"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UnwrapEth = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'unwrapEth', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"wrapEth"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_WrapEth = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'wrapEth', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"advancedFarm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_AdvancedFarm = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'advancedFarm', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"farm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Farm = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'farm', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"advancedPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_AdvancedPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'advancedPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"etherPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_EtherPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'etherPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"multiPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_MultiPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'multiPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Pipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"addField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_AddField = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'addField', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"harvest"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Harvest = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'harvest', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"setActiveField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SetActiveField = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'setActiveField', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Sow = /*#__PURE__*/ createUseSimulateContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'sow' }, +) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sowWithMin"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SowWithMin = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sowWithMin', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"approvePods"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ApprovePods = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'approvePods', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cancelPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_CancelPodListing = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cancelPodListing', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"cancelPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_CancelPodOrder = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'cancelPodOrder', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"createPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_CreatePodListing = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'createPodListing', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"createPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_CreatePodOrder = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'createPodOrder', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"fillPodListing"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_FillPodListing = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'fillPodListing', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"fillPodOrder"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_FillPodOrder = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'fillPodOrder', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferPlot"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferPlot = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferPlot', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferPlots"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferPlots = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferPlots', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"dewhitelistToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_DewhitelistToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'dewhitelistToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateGaugeForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateGaugeForToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateGaugeForToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateGaugePointImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateGaugePointImplementationForToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateGaugePointImplementationForToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateLiquidityWeightImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateLiquidityWeightImplementationForToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateLiquidityWeightImplementationForToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateOracleImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateOracleImplementationForToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateOracleImplementationForToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateSeedGaugeSettings"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateSeedGaugeSettings = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateSeedGaugeSettings', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateStalkPerBdvPerSeasonForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateStalkPerBdvPerSeasonForToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateStalkPerBdvPerSeasonForToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"whitelistToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_WhitelistToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'whitelistToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"deposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Deposit = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'deposit', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"safeBatchTransferFrom"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SafeBatchTransferFrom = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'safeBatchTransferFrom', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"safeTransferFrom"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SafeTransferFrom = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'safeTransferFrom', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferDeposit = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferDeposit', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"transferDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_TransferDeposits = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'transferDeposits', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"updateSortedDepositIds"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_UpdateSortedDepositIds = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'updateSortedDepositIds', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"withdrawDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_WithdrawDeposit = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'withdrawDeposit', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"withdrawDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_WithdrawDeposits = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'withdrawDeposits', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pipelineConvert"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_PipelineConvert = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pipelineConvert', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"pipelineConvertWithStalkSlippage"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_PipelineConvertWithStalkSlippage = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'pipelineConvertWithStalkSlippage', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"convert"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Convert = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'convert', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"convertWithStalkSlippage"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ConvertWithStalkSlippage = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'convertWithStalkSlippage', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"claimAllPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ClaimAllPlenty = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'claimAllPlenty', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"claimPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ClaimPlenty = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'claimPlenty', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Mow = /*#__PURE__*/ createUseSimulateContract( + { abi: beanstalkAbi, address: beanstalkAddress, functionName: 'mow' }, +) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_MowAll = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowAll', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowAllMultipleAccounts"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_MowAllMultipleAccounts = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowAllMultipleAccounts', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowMultiple"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_MowMultiple = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowMultiple', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"mowMultipleAccounts"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_MowMultipleAccounts = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'mowMultipleAccounts', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"plant"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Plant = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'plant', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"approveDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_ApproveDeposit = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'approveDeposit', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"decreaseDepositAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_DecreaseDepositAllowance = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'decreaseDepositAllowance', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"increaseDepositAllowance"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_IncreaseDepositAllowance = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'increaseDepositAllowance', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"setApprovalForAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SetApprovalForAll = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'setApprovalForAll', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"gm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Gm = /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'gm', +}) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"setShipmentRoutes"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_SetShipmentRoutes = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'setShipmentRoutes', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link beanstalkAbi}__ and `functionName` set to `"sunrise"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useSimulateBeanstalk_Sunrise = + /*#__PURE__*/ createUseSimulateContract({ + abi: beanstalkAbi, + address: beanstalkAddress, + functionName: 'sunrise', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_undefined = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Pause"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Pause = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Pause', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Unpause"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Unpause = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Unpause', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"OwnershipTransferred"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_OwnershipTransferred = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'OwnershipTransferred', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"DiamondCut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_DiamondCut = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'DiamondCut', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"CancelBlueprint"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_CancelBlueprint = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'CancelBlueprint', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"InternalBalanceChanged"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_InternalBalanceChanged = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'InternalBalanceChanged', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PublishRequisition"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PublishRequisition = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PublishRequisition', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TokenTransferred"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TokenTransferred = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TokenTransferred', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Tractor"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Tractor = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Tractor', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TractorExecutionBegan"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TractorExecutionBegan = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TractorExecutionBegan', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TractorVersionSet"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TractorVersionSet = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TractorVersionSet', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TokenApproval"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TokenApproval = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TokenApproval', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"ActiveFieldSet"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_ActiveFieldSet = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'ActiveFieldSet', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"FieldAdded"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_FieldAdded = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'FieldAdded', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Harvest"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Harvest = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Harvest', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodListingCancelled"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodListingCancelled = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodListingCancelled', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"SoilMostlySoldOut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_SoilMostlySoldOut = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'SoilMostlySoldOut', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"SoilSoldOut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_SoilSoldOut = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'SoilSoldOut', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Sow"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Sow = /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Sow', +}) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PlotTransfer"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PlotTransfer = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PlotTransfer', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodApproval"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodApproval = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodApproval', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodListingCreated"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodListingCreated = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodListingCreated', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodListingFilled"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodListingFilled = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodListingFilled', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodOrderCancelled"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodOrderCancelled = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodOrderCancelled', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodOrderCreated"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodOrderCreated = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodOrderCreated', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"PodOrderFilled"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_PodOrderFilled = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'PodOrderFilled', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"AddWhitelistStatus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_AddWhitelistStatus = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'AddWhitelistStatus', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"DewhitelistToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_DewhitelistToken = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'DewhitelistToken', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdateWhitelistStatus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdateWhitelistStatus = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdateWhitelistStatus', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedEvaluationParameters"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedEvaluationParameters = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedEvaluationParameters', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedGaugePointImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedGaugePointImplementationForToken = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedGaugePointImplementationForToken', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedLiquidityWeightImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedLiquidityWeightImplementationForToken = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedLiquidityWeightImplementationForToken', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedOptimalPercentDepositedBdvForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedOptimalPercentDepositedBdvForToken = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedOptimalPercentDepositedBdvForToken', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedOracleImplementationForToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedOracleImplementationForToken = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedOracleImplementationForToken', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedStalkPerBdvPerSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedStalkPerBdvPerSeason = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedStalkPerBdvPerSeason', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"WhitelistToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_WhitelistToken = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'WhitelistToken', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"FarmerGerminatingStalkBalanceChanged"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_FarmerGerminatingStalkBalanceChanged = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'FarmerGerminatingStalkBalanceChanged', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"RemoveDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_RemoveDeposit = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'RemoveDeposit', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"RemoveDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_RemoveDeposits = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'RemoveDeposits', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"StalkBalanceChanged"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_StalkBalanceChanged = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'StalkBalanceChanged', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TotalGerminatingBalanceChanged"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TotalGerminatingBalanceChanged = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TotalGerminatingBalanceChanged', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TotalGerminatingStalkChanged"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TotalGerminatingStalkChanged = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TotalGerminatingStalkChanged', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TransferBatch"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TransferBatch = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TransferBatch', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TransferSingle"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TransferSingle = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TransferSingle', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Convert"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Convert = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Convert', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"ClaimPlenty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_ClaimPlenty = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'ClaimPlenty', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Plant"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Plant = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Plant', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"ApprovalForAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_ApprovalForAll = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'ApprovalForAll', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"DepositApproval"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_DepositApproval = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'DepositApproval', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Incentivization"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Incentivization = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Incentivization', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TotalStalkChangedFromGermination"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TotalStalkChangedFromGermination = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TotalStalkChangedFromGermination', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"WellOracle"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_WellOracle = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'WellOracle', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"AddDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_AddDeposit = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'AddDeposit', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"GaugePointChange"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_GaugePointChange = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'GaugePointChange', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdateAverageStalkPerBdvPerSeason"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdateAverageStalkPerBdvPerSeason = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdateAverageStalkPerBdvPerSeason', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdateMaxTotalGaugePoints"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdateMaxTotalGaugePoints = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdateMaxTotalGaugePoints', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Receipt"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Receipt = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Receipt', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Shipped"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Shipped = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Shipped', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"SeasonMetrics"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_SeasonMetrics = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'SeasonMetrics', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"BeanToMaxLpGpPerBdvRatioChange"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_BeanToMaxLpGpPerBdvRatioChange = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'BeanToMaxLpGpPerBdvRatioChange', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"RainStatus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_RainStatus = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'RainStatus', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"SeasonOfPlentyField"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_SeasonOfPlentyField = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'SeasonOfPlentyField', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"SeasonOfPlentyWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_SeasonOfPlentyWell = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'SeasonOfPlentyWell', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"TemperatureChange"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_TemperatureChange = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'TemperatureChange', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"UpdatedGaugeData"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_UpdatedGaugeData = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'UpdatedGaugeData', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"ConvertDownPenalty"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_ConvertDownPenalty = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'ConvertDownPenalty', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"ConvertUpBonus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_ConvertUpBonus = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'ConvertUpBonus', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Engaged"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Engaged = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Engaged', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"EngagedData"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_EngagedData = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'EngagedData', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"ShipmentRoutesSet"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_ShipmentRoutesSet = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'ShipmentRoutesSet', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Soil"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Soil = /*#__PURE__*/ createUseWatchContractEvent( + { abi: beanstalkAbi, address: beanstalkAddress, eventName: 'Soil' }, +) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"Sunrise"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Sunrise = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'Sunrise', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link beanstalkAbi}__ and `eventName` set to `"URI"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useWatchBeanstalk_Uri = /*#__PURE__*/ createUseWatchContractEvent({ + abi: beanstalkAbi, + address: beanstalkAddress, + eventName: 'URI', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_undefined = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getBestWellForBeanIn"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetBestWellForBeanIn = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getBestWellForBeanIn', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getBestWellForUsdIn"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetBestWellForUsdIn = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getBestWellForUsdIn', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getSwapDataBeanIn"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetSwapDataBeanIn = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getSwapDataBeanIn', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getSwapDataBeanInAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetSwapDataBeanInAll = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getSwapDataBeanInAll', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getSwapDataUsdIn"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetSwapDataUsdIn = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getSwapDataUsdIn', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getSwapDataUsdInAll"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetSwapDataUsdInAll = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getSwapDataUsdInAll', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"getWell"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_GetWell = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'getWell', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"poolPrice"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_PoolPrice = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'poolPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"price"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_Price = /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'price', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link beanstalkPriceAbi}__ and `functionName` set to `"priceForWells"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4BEd6cb142b7d474242d87F4796387DEB9E1E1B4) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x13D25ABCB6a19948d35654715c729c6501230b49) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xC218F5a782b0913931DCF502FA2aA959b36Ac9E7) + */ +export const useReadBeanstalkPrice_PriceForWells = + /*#__PURE__*/ createUseReadContract({ + abi: beanstalkPriceAbi, + address: beanstalkPriceAddress, + functionName: 'priceForWells', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_undefined = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"beanstalkPrice"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_BeanstalkPrice = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'beanstalkPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"functionPaused"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_FunctionPaused = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'functionPaused', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"getBeansLeftToConvert"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_GetBeansLeftToConvert = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'getBeansLeftToConvert', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"getLastExecutedTimestamp"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_GetLastExecutedTimestamp = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'getLastExecutedTimestamp', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"orderInfo"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_OrderInfo = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'orderInfo', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"owner"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_Owner = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'owner', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"siloHelpers"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_SiloHelpers = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'siloHelpers', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"tractorHelpers"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_TractorHelpers = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'tractorHelpers', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"validateParamsAndReturnBeanstalkState"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_ValidateParamsAndReturnBeanstalkState = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'validateParamsAndReturnBeanstalkState', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"validateParamsAndReturnBeanstalkStateArray"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_ValidateParamsAndReturnBeanstalkStateArray = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'validateParamsAndReturnBeanstalkStateArray', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"version"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useReadConvertUpBlueprint_Version = + /*#__PURE__*/ createUseReadContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'version', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWriteConvertUpBlueprint_undefined = + /*#__PURE__*/ createUseWriteContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"convertUpBlueprint"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWriteConvertUpBlueprint_ConvertUpBlueprint = + /*#__PURE__*/ createUseWriteContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'convertUpBlueprint', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"pauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWriteConvertUpBlueprint_PauseFunction = + /*#__PURE__*/ createUseWriteContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'pauseFunction', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"renounceOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWriteConvertUpBlueprint_RenounceOwnership = + /*#__PURE__*/ createUseWriteContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'renounceOwnership', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"transferOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWriteConvertUpBlueprint_TransferOwnership = + /*#__PURE__*/ createUseWriteContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"unpauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWriteConvertUpBlueprint_UnpauseFunction = + /*#__PURE__*/ createUseWriteContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'unpauseFunction', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useSimulateConvertUpBlueprint_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"convertUpBlueprint"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useSimulateConvertUpBlueprint_ConvertUpBlueprint = + /*#__PURE__*/ createUseSimulateContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'convertUpBlueprint', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"pauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useSimulateConvertUpBlueprint_PauseFunction = + /*#__PURE__*/ createUseSimulateContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'pauseFunction', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"renounceOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useSimulateConvertUpBlueprint_RenounceOwnership = + /*#__PURE__*/ createUseSimulateContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'renounceOwnership', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"transferOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useSimulateConvertUpBlueprint_TransferOwnership = + /*#__PURE__*/ createUseSimulateContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `functionName` set to `"unpauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useSimulateConvertUpBlueprint_UnpauseFunction = + /*#__PURE__*/ createUseSimulateContract({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + functionName: 'unpauseFunction', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link convertUpBlueprintAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWatchConvertUpBlueprint_undefined = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `eventName` set to `"ConvertUpOrderComplete"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWatchConvertUpBlueprint_ConvertUpOrderComplete = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + eventName: 'ConvertUpOrderComplete', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `eventName` set to `"FunctionPaused"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWatchConvertUpBlueprint_FunctionPaused = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + eventName: 'FunctionPaused', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link convertUpBlueprintAbi}__ and `eventName` set to `"OwnershipTransferred"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x5167Ae1fF37bE08D9cc9188C7e64DB228B6F06ca) + * - + */ +export const useWatchConvertUpBlueprint_OwnershipTransferred = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: convertUpBlueprintAbi, + address: convertUpBlueprintAddress, + eventName: 'OwnershipTransferred', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link depotAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useReadDepot_undefined = /*#__PURE__*/ createUseReadContract({ + abi: depotAbi, + address: depotAddress, +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"readPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useReadDepot_ReadPipe = /*#__PURE__*/ createUseReadContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'readPipe', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"version"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useReadDepot_Version = /*#__PURE__*/ createUseReadContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'version', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_undefined = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"advancedPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_AdvancedPipe = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'advancedPipe', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"batchTransferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_BatchTransferErc1155 = + /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'batchTransferERC1155', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"etherPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_EtherPipe = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'etherPipe', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"farm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_Farm = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'farm', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"multiPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_MultiPipe = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'multiPipe', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_PermitDeposit = /*#__PURE__*/ createUseWriteContract( + { abi: depotAbi, address: depotAddress, functionName: 'permitDeposit' }, +) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_PermitDeposits = + /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitDeposits', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitERC20"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_PermitErc20 = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitERC20', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitERC721"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_PermitErc721 = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitERC721', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_PermitToken = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitToken', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"pipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_Pipe = /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'pipe', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_TransferDeposit = + /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferDeposit', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_TransferDeposits = + /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferDeposits', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_TransferErc1155 = + /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferERC1155', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferERC721"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_TransferErc721 = + /*#__PURE__*/ createUseWriteContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferERC721', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useWriteDepot_TransferToken = /*#__PURE__*/ createUseWriteContract( + { abi: depotAbi, address: depotAddress, functionName: 'transferToken' }, +) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"advancedPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_AdvancedPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'advancedPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"batchTransferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_BatchTransferErc1155 = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'batchTransferERC1155', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"etherPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_EtherPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'etherPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"farm"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_Farm = /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'farm', +}) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"multiPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_MultiPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'multiPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_PermitDeposit = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitDeposit', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_PermitDeposits = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitDeposits', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitERC20"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_PermitErc20 = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitERC20', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitERC721"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_PermitErc721 = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitERC721', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"permitToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_PermitToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'permitToken', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"pipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_Pipe = /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'pipe', +}) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferDeposit"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_TransferDeposit = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferDeposit', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferDeposits"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_TransferDeposits = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferDeposits', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferERC1155"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_TransferErc1155 = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferERC1155', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferERC721"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_TransferErc721 = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferERC721', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link depotAbi}__ and `functionName` set to `"transferToken"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xDEb0f00071497a5cc9b4A6B96068277e57A82Ae2) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0x02F7c20dabC251f35272492177E177035C21269B) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xDEb0f0dEEc1A29ab97ABf65E537452D1B00A619c) + */ +export const useSimulateDepot_TransferToken = + /*#__PURE__*/ createUseSimulateContract({ + abi: depotAbi, + address: depotAddress, + functionName: 'transferToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_undefined = /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"balanceOfStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_BalanceOfStalk = /*#__PURE__*/ createUseReadContract( + { abi: farmerAbi, address: farmerAddress, functionName: 'balanceOfStalk' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"balanceOfSop"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_BalanceOfSop = /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, + functionName: 'balanceOfSop', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"balanceOfGrownStalk"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_BalanceOfGrownStalk = + /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, + functionName: 'balanceOfGrownStalk', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"balanceOfEarnedBeans"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_BalanceOfEarnedBeans = + /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, + functionName: 'balanceOfEarnedBeans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"getPlotsFromAccount"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_GetPlotsFromAccount = + /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, + functionName: 'getPlotsFromAccount', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"balanceOfGrownStalkMultiple"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_BalanceOfGrownStalkMultiple = + /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, + functionName: 'balanceOfGrownStalkMultiple', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link farmerAbi}__ and `functionName` set to `"getMowStatus"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadFarmer_GetMowStatus = /*#__PURE__*/ createUseReadContract({ + abi: farmerAbi, + address: farmerAddress, + functionName: 'getMowStatus', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ + */ +export const useReadJunction_undefined = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"add"` + */ +export const useReadJunction_Add = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'add', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"bytes32Switch"` + */ +export const useReadJunction_Bytes32Switch = + /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'bytes32Switch', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"check"` + */ +export const useReadJunction_Check = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'check', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"div"` + */ +export const useReadJunction_Div = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'div', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"eq"` + */ +export const useReadJunction_Eq = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'eq', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"gt"` + */ +export const useReadJunction_Gt = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'gt', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"gte"` + */ +export const useReadJunction_Gte = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'gte', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"lt"` + */ +export const useReadJunction_Lt = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'lt', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"lte"` + */ +export const useReadJunction_Lte = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'lte', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"mod"` + */ +export const useReadJunction_Mod = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'mod', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"mul"` + */ +export const useReadJunction_Mul = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'mul', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"mulDiv"` + */ +export const useReadJunction_MulDiv = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'mulDiv', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"neq"` + */ +export const useReadJunction_Neq = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'neq', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link junctionAbi}__ and `functionName` set to `"sub"` + */ +export const useReadJunction_Sub = /*#__PURE__*/ createUseReadContract({ + abi: junctionAbi, + address: junctionAddress, + functionName: 'sub', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link pipelineAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useReadPipeline_undefined = /*#__PURE__*/ createUseReadContract({ + abi: pipelineAbi, + address: pipelineAddress, +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"supportsInterface"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useReadPipeline_SupportsInterface = + /*#__PURE__*/ createUseReadContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'supportsInterface', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"version"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useReadPipeline_Version = /*#__PURE__*/ createUseReadContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'version', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_undefined = /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"advancedPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_AdvancedPipe = + /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'advancedPipe', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"multiPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_MultiPipe = /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'multiPipe', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_OnErc1155BatchReceived = + /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'onERC1155BatchReceived', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"onERC1155Received"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_OnErc1155Received = + /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'onERC1155Received', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"onERC721Received"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_OnErc721Received = + /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'onERC721Received', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"pipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useWritePipeline_Pipe = /*#__PURE__*/ createUseWriteContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'pipe', +}) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: pipelineAbi, + address: pipelineAddress, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"advancedPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_AdvancedPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'advancedPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"multiPipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_MultiPipe = + /*#__PURE__*/ createUseSimulateContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'multiPipe', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"onERC1155BatchReceived"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_OnErc1155BatchReceived = + /*#__PURE__*/ createUseSimulateContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'onERC1155BatchReceived', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"onERC1155Received"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_OnErc1155Received = + /*#__PURE__*/ createUseSimulateContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'onERC1155Received', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"onERC721Received"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_OnErc721Received = + /*#__PURE__*/ createUseSimulateContract({ + abi: pipelineAbi, + address: pipelineAddress, + functionName: 'onERC721Received', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link pipelineAbi}__ and `functionName` set to `"pipe"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xb1bE0000C6B3C62749b5F0c92480146452D15423) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xb1bE0001f5a373b69b1E132b420e6D9687155e80) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xb1bE000644bD25996b0d9C2F7a6D6BA3954c91B0) + */ +export const useSimulatePipeline_Pipe = /*#__PURE__*/ createUseSimulateContract( + { abi: pipelineAbi, address: pipelineAddress, functionName: 'pipe' }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link seasonFacetViewAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadSeasonFacetView_undefined = + /*#__PURE__*/ createUseReadContract({ + abi: seasonFacetViewAbi, + address: seasonFacetViewAddress, + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link seasonFacetViewAbi}__ and `functionName` set to `"time"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadSeasonFacetView_Time = /*#__PURE__*/ createUseReadContract({ + abi: seasonFacetViewAbi, + address: seasonFacetViewAddress, + functionName: 'time', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link seasonFacetViewAbi}__ and `functionName` set to `"getSeasonTimestamp"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadSeasonFacetView_GetSeasonTimestamp = + /*#__PURE__*/ createUseReadContract({ + abi: seasonFacetViewAbi, + address: seasonFacetViewAddress, + functionName: 'getSeasonTimestamp', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link seasonFacetViewAbi}__ and `functionName` set to `"seasonTime"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadSeasonFacetView_SeasonTime = + /*#__PURE__*/ createUseReadContract({ + abi: seasonFacetViewAbi, + address: seasonFacetViewAddress, + functionName: 'seasonTime', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloAbi}__ + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadSilo_undefined = /*#__PURE__*/ createUseReadContract({ + abi: siloAbi, + address: siloAddress, +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloAbi}__ and `functionName` set to `"getAmountOut"` + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xC1E088fC1323b20BCBee9bd1B9fC9546db5624C5) + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xD1A0D188E861ed9d15773a2F3574a2e94134bA8f) + * - + * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xD1A0060ba708BC4BCD3DA6C37EFa8deDF015FB70) + */ +export const useReadSilo_GetAmountOut = /*#__PURE__*/ createUseReadContract({ + abi: siloAbi, + address: siloAddress, + functionName: 'getAmountOut', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_undefined = /*#__PURE__*/ createUseReadContract( + { abi: siloHelpersAbi, address: siloHelpersAddress }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getAddressAndStem"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetAddressAndStem = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getAddressAndStem', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getBeanAmountAvailable"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetBeanAmountAvailable = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getBeanAmountAvailable', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getDepositStemsAndAmountsToWithdraw"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetDepositStemsAndAmountsToWithdraw = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getDepositStemsAndAmountsToWithdraw', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getSortedDeposits"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetSortedDeposits = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getSortedDeposits', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getTokenIndex"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetTokenIndex = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getTokenIndex', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getUserDepositedTokens"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetUserDepositedTokens = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getUserDepositedTokens', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getWhitelistStatusAddresses"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetWhitelistStatusAddresses = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getWhitelistStatusAddresses', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getWithdrawalPlan"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetWithdrawalPlan = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getWithdrawalPlan', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"getWithdrawalPlanExcludingPlan"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useReadSiloHelpers_GetWithdrawalPlanExcludingPlan = + /*#__PURE__*/ createUseReadContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'getWithdrawalPlanExcludingPlan', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link siloHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useWriteSiloHelpers_undefined = + /*#__PURE__*/ createUseWriteContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"isValidSlippage"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useWriteSiloHelpers_IsValidSlippage = + /*#__PURE__*/ createUseWriteContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'isValidSlippage', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"sortDeposits"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useWriteSiloHelpers_SortDeposits = + /*#__PURE__*/ createUseWriteContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'sortDeposits', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"withdrawBeansFromSources"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useWriteSiloHelpers_WithdrawBeansFromSources = + /*#__PURE__*/ createUseWriteContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'withdrawBeansFromSources', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link siloHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useSimulateSiloHelpers_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"isValidSlippage"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useSimulateSiloHelpers_IsValidSlippage = + /*#__PURE__*/ createUseSimulateContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'isValidSlippage', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"sortDeposits"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useSimulateSiloHelpers_SortDeposits = + /*#__PURE__*/ createUseSimulateContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'sortDeposits', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link siloHelpersAbi}__ and `functionName` set to `"withdrawBeansFromSources"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xE145082A7C5EDd1767f8148A6c29a17488d1eb31) + * - + */ +export const useSimulateSiloHelpers_WithdrawBeansFromSources = + /*#__PURE__*/ createUseSimulateContract({ + abi: siloHelpersAbi, + address: siloHelpersAddress, + functionName: 'withdrawBeansFromSources', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_undefined = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"functionPaused"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_FunctionPaused = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'functionPaused', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"getLastExecutedSeason"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_GetLastExecutedSeason = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'getLastExecutedSeason', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"getPintosLeftToSow"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_GetPintosLeftToSow = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'getPintosLeftToSow', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"owner"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_Owner = /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'owner', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"tractorHelpers"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_TractorHelpers = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'tractorHelpers', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"validateParamsAndReturnBeanstalkState"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_ValidateParamsAndReturnBeanstalkState = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'validateParamsAndReturnBeanstalkState', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"validateParamsAndReturnBeanstalkStateArray"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useReadSowBlueprintv0_ValidateParamsAndReturnBeanstalkStateArray = + /*#__PURE__*/ createUseReadContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'validateParamsAndReturnBeanstalkStateArray', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWriteSowBlueprintv0_undefined = + /*#__PURE__*/ createUseWriteContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"pauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWriteSowBlueprintv0_PauseFunction = + /*#__PURE__*/ createUseWriteContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'pauseFunction', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"renounceOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWriteSowBlueprintv0_RenounceOwnership = + /*#__PURE__*/ createUseWriteContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'renounceOwnership', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"sowBlueprintv0"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWriteSowBlueprintv0_SowBlueprintv0 = + /*#__PURE__*/ createUseWriteContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'sowBlueprintv0', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"transferOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWriteSowBlueprintv0_TransferOwnership = + /*#__PURE__*/ createUseWriteContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"unpauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWriteSowBlueprintv0_UnpauseFunction = + /*#__PURE__*/ createUseWriteContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'unpauseFunction', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useSimulateSowBlueprintv0_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"pauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useSimulateSowBlueprintv0_PauseFunction = + /*#__PURE__*/ createUseSimulateContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'pauseFunction', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"renounceOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useSimulateSowBlueprintv0_RenounceOwnership = + /*#__PURE__*/ createUseSimulateContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'renounceOwnership', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"sowBlueprintv0"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useSimulateSowBlueprintv0_SowBlueprintv0 = + /*#__PURE__*/ createUseSimulateContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'sowBlueprintv0', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"transferOwnership"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useSimulateSowBlueprintv0_TransferOwnership = + /*#__PURE__*/ createUseSimulateContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'transferOwnership', + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `functionName` set to `"unpauseFunction"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useSimulateSowBlueprintv0_UnpauseFunction = + /*#__PURE__*/ createUseSimulateContract({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + functionName: 'unpauseFunction', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link sowBlueprintv0Abi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWatchSowBlueprintv0_undefined = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `eventName` set to `"FunctionPaused"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWatchSowBlueprintv0_FunctionPaused = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + eventName: 'FunctionPaused', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `eventName` set to `"OwnershipTransferred"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWatchSowBlueprintv0_OwnershipTransferred = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + eventName: 'OwnershipTransferred', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link sowBlueprintv0Abi}__ and `eventName` set to `"SowOrderComplete"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbb0a41927895F8ca2b4ECCc659ba158735fCF28B) + * - + */ +export const useWatchSowBlueprintv0_SowOrderComplete = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: sowBlueprintv0Abi, + address: sowBlueprintv0Address, + eventName: 'SowOrderComplete', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_undefined = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"add"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Add = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'add', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"bytes32Switch"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Bytes32Switch = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'bytes32Switch', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"check"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Check = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'check', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"combineWithdrawalPlans"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_CombineWithdrawalPlans = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'combineWithdrawalPlans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"div"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Div = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'div', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"eq"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Eq = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'eq', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getAddressAndStem"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetAddressAndStem = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getAddressAndStem', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getBeanstalkPrice"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetBeanstalkPrice = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getBeanstalkPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getHighestSeedToken"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetHighestSeedToken = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getHighestSeedToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getLPTokensToWithdrawForBeans"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetLpTokensToWithdrawForBeans = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getLPTokensToWithdrawForBeans', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getLowestSeedToken"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetLowestSeedToken = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getLowestSeedToken', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getSortedDeposits"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetSortedDeposits = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getSortedDeposits', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getSortedWhitelistedTokensBySeeds"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetSortedWhitelistedTokensBySeeds = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getSortedWhitelistedTokensBySeeds', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getTokenIndex"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetTokenIndex = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getTokenIndex', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getTokensAscendingPrice"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetTokensAscendingPrice = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getTokensAscendingPrice', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getTokensAscendingSeeds"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetTokensAscendingSeeds = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getTokensAscendingSeeds', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"getWhitelistStatusAddresses"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_GetWhitelistStatusAddresses = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'getWhitelistStatusAddresses', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"gt"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Gt = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'gt', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"gte"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Gte = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'gte', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"isOperatorWhitelisted"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_IsOperatorWhitelisted = + /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'isOperatorWhitelisted', + }) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"lt"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Lt = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'lt', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"lte"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Lte = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'lte', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"mod"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Mod = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'mod', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"mul"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Mul = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'mul', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"mulDiv"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_MulDiv = /*#__PURE__*/ createUseReadContract( + { + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'mulDiv', + }, +) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"neq"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Neq = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'neq', +}) + +/** + * Wraps __{@link useReadContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"sub"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useReadTractorHelpers_Sub = /*#__PURE__*/ createUseReadContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'sub', +}) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link tractorHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useWriteTractorHelpers_undefined = + /*#__PURE__*/ createUseWriteContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + }) + +/** + * Wraps __{@link useWriteContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"tip"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useWriteTractorHelpers_Tip = /*#__PURE__*/ createUseWriteContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'tip', +}) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link tractorHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useSimulateTractorHelpers_undefined = + /*#__PURE__*/ createUseSimulateContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + }) + +/** + * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link tractorHelpersAbi}__ and `functionName` set to `"tip"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useSimulateTractorHelpers_Tip = + /*#__PURE__*/ createUseSimulateContract({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + functionName: 'tip', + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link tractorHelpersAbi}__ + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useWatchTractorHelpers_undefined = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + }) + +/** + * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link tractorHelpersAbi}__ and `eventName` set to `"OperatorReward"` + * + * - + * - [__View Contract on Base Basescan__](https://basescan.org/address/0xBCa2F299602c2a43850c8b2FD19D5275D0F388b6) + * - + */ +export const useWatchTractorHelpers_OperatorReward = + /*#__PURE__*/ createUseWatchContractEvent({ + abi: tractorHelpersAbi, + address: tractorHelpersAddress, + eventName: 'OperatorReward', + }) diff --git a/src/generated/gql/exchange/gql.ts b/src/generated/gql/exchange/gql.ts new file mode 100644 index 000000000..b7cc039fd --- /dev/null +++ b/src/generated/gql/exchange/gql.ts @@ -0,0 +1,52 @@ +/* eslint-disable */ +import * as types from './graphql'; +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; + +/** + * Map of all GraphQL operations in the project. + * + * This map has several performance disadvantages: + * 1. It is not tree-shakeable, so it will include all operations in the project. + * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. + * 3. It does not support dead code elimination, so it will add unused operations. + * + * Therefore it is highly recommended to use the babel or swc plugin for production. + * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size + */ +type Documents = { + "query BasinAdvancedChart($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: desc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeBuyVolumeUSD\n cumulativeSellVolumeUSD\n cumulativeTradeVolumeUSD\n deltaBuyVolumeUSD\n deltaSellVolumeUSD\n deltaTradeVolumeUSD\n cumulativeConvertUpVolumeUSD\n cumulativeConvertDownVolumeUSD\n cumulativeConvertVolumeUSD\n cumulativeConvertNeutralTransferVolumeUSD\n deltaConvertDownVolumeUSD\n deltaConvertUpVolumeUSD\n deltaConvertVolumeUSD\n deltaConvertNeutralTransferVolumeUSD\n totalLiquidityUSD\n deltaLiquidityUSD\n }\n}": typeof types.BasinAdvancedChartDocument, + "query BasinSeasonalSummary($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: asc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeTradeVolumeUSD\n cumulativeConvertVolumeUSD\n totalLiquidityUSD\n }\n}": typeof types.BasinSeasonalSummaryDocument, +}; +const documents: Documents = { + "query BasinAdvancedChart($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: desc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeBuyVolumeUSD\n cumulativeSellVolumeUSD\n cumulativeTradeVolumeUSD\n deltaBuyVolumeUSD\n deltaSellVolumeUSD\n deltaTradeVolumeUSD\n cumulativeConvertUpVolumeUSD\n cumulativeConvertDownVolumeUSD\n cumulativeConvertVolumeUSD\n cumulativeConvertNeutralTransferVolumeUSD\n deltaConvertDownVolumeUSD\n deltaConvertUpVolumeUSD\n deltaConvertVolumeUSD\n deltaConvertNeutralTransferVolumeUSD\n totalLiquidityUSD\n deltaLiquidityUSD\n }\n}": types.BasinAdvancedChartDocument, + "query BasinSeasonalSummary($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: asc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeTradeVolumeUSD\n cumulativeConvertVolumeUSD\n totalLiquidityUSD\n }\n}": types.BasinSeasonalSummaryDocument, +}; + +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + * + * + * @example + * ```ts + * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`); + * ``` + * + * The query argument is unknown! + * Please regenerate the types. + */ +export function graphql(source: string): unknown; + +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BasinAdvancedChart($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: desc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeBuyVolumeUSD\n cumulativeSellVolumeUSD\n cumulativeTradeVolumeUSD\n deltaBuyVolumeUSD\n deltaSellVolumeUSD\n deltaTradeVolumeUSD\n cumulativeConvertUpVolumeUSD\n cumulativeConvertDownVolumeUSD\n cumulativeConvertVolumeUSD\n cumulativeConvertNeutralTransferVolumeUSD\n deltaConvertDownVolumeUSD\n deltaConvertUpVolumeUSD\n deltaConvertVolumeUSD\n deltaConvertNeutralTransferVolumeUSD\n totalLiquidityUSD\n deltaLiquidityUSD\n }\n}"): (typeof documents)["query BasinAdvancedChart($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: desc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeBuyVolumeUSD\n cumulativeSellVolumeUSD\n cumulativeTradeVolumeUSD\n deltaBuyVolumeUSD\n deltaSellVolumeUSD\n deltaTradeVolumeUSD\n cumulativeConvertUpVolumeUSD\n cumulativeConvertDownVolumeUSD\n cumulativeConvertVolumeUSD\n cumulativeConvertNeutralTransferVolumeUSD\n deltaConvertDownVolumeUSD\n deltaConvertUpVolumeUSD\n deltaConvertVolumeUSD\n deltaConvertNeutralTransferVolumeUSD\n totalLiquidityUSD\n deltaLiquidityUSD\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BasinSeasonalSummary($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: asc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeTradeVolumeUSD\n cumulativeConvertVolumeUSD\n totalLiquidityUSD\n }\n}"): (typeof documents)["query BasinSeasonalSummary($from: Int, $to: Int) {\n beanstalkHourlySnapshots(\n first: 1000\n orderBy: season__season\n orderDirection: asc\n where: {season_: {season_gte: $from, season_lte: $to}}\n ) {\n id\n createdTimestamp\n season {\n season\n }\n cumulativeTradeVolumeUSD\n cumulativeConvertVolumeUSD\n totalLiquidityUSD\n }\n}"]; + +export function graphql(source: string) { + return (documents as any)[source] ?? {}; +} + +export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; \ No newline at end of file diff --git a/src/generated/gql/exchange/graphql.ts b/src/generated/gql/exchange/graphql.ts new file mode 100644 index 000000000..d65a9c621 --- /dev/null +++ b/src/generated/gql/exchange/graphql.ts @@ -0,0 +1,4558 @@ +/* eslint-disable */ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + BigDecimal: { input: any; output: any; } + BigInt: { input: any; output: any; } + Bytes: { input: any; output: any; } + /** + * 8 bytes signed integer + * + */ + Int8: { input: any; output: any; } + /** + * A string representation of microseconds UNIX timestamp (16 digits) + * + */ + Timestamp: { input: any; output: any; } +}; + +export type Account = { + __typename?: 'Account'; + id: Scalars['Bytes']['output']; + trades: Array; +}; + + +export type AccountTradesArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Account_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + trades_?: InputMaybe; +}; + +export enum Account_OrderBy { + Id = 'id', + Trades = 'trades' +} + +export enum Aggregation_Interval { + Day = 'day', + Hour = 'hour' +} + +export type Aquifer = { + __typename?: 'Aquifer'; + /** Smart contract address of the aquifer */ + id: Scalars['Bytes']['output']; + /** Wells deployed by this aquifer */ + wells: Array; +}; + + +export type AquiferWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Aquifer_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + wells_?: InputMaybe; +}; + +export enum Aquifer_OrderBy { + Id = 'id', + Wells = 'wells' +} + +export type Beanstalk = { + __typename?: 'Beanstalk'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All bean buying volume, including converts. Subset of cumulativeTradeVolumeUSD. */ + cumulativeBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** All downconvert convert trading volume, in USD. Subset of cumulativeConvertVolumeUSD. */ + cumulativeConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** All LP->LP convert trading volume, in USD. Counts values from both Well interactions. A LP->LP convert is defined as a remove liquidity in one Well and add liquidity in another Well. Does not include L2L or AL2L converts which have no Well trading activity. Subset of cumulativeConvertVolumeUSD. */ + cumulativeConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All LP->LP convert transfer volume, in USD. Does NOT double count values from both well interactions. A LP->LP convert is defined as a remove liquidity in one Well and add liquidity in another Well. Does not include L2L or AL2L converts which have no Well trading activity. Subset of cumulativeConvertVolumeUSD. */ + cumulativeConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** All upconvert convert trading volume, in USD. Subset of cumulativeConvertVolumeUSD. */ + cumulativeConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** All bidirectional convert trading volume, in USD. Includes LP->LP converts which are neither up nor down. */ + cumulativeConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** All bean selling volume, including converts. Subset of cumulativeTradeVolumeUSD. */ + cumulativeSellVolumeUSD: Scalars['BigDecimal']['output']; + /** All trade volume occurred, in USD. This includes any net trading activity as a result of add/remove liquidity. */ + cumulativeTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All transfer volume occurred, in USD. This includes the full value of tokens transferred in add/remove liquidity. */ + cumulativeTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** = 'beanstalk' */ + id: Scalars['ID']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Last season seen from Beanstalk */ + lastSeason: Season; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Rolling 24h of cumulativeBuyVolumeUSD */ + rollingDailyBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeConvertDownVolumeUSD */ + rollingDailyConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeConvertNeutralTradeVolumeUSD */ + rollingDailyConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeConvertNeutralTransferVolumeUSD */ + rollingDailyConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeConvertUpVolumeUSD */ + rollingDailyConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeConvertVolumeUSD */ + rollingDailyConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeSellVolumeUSD */ + rollingDailySellVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeTradeVolumeUSD */ + rollingDailyTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeTransferVolumeUSD */ + rollingDailyTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeBuyVolumeUSD */ + rollingWeeklyBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeConvertDownVolumeUSD */ + rollingWeeklyConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeConvertNeutralTradeVolumeUSD */ + rollingWeeklyConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeConvertNeutralTransferVolumeUSD */ + rollingWeeklyConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeConvertUpVolumeUSD */ + rollingWeeklyConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeConvertVolumeUSD */ + rollingWeeklyConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeSellVolumeUSD */ + rollingWeeklySellVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeTradeVolumeUSD */ + rollingWeeklyTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeTransferVolumeUSD */ + rollingWeeklyTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** The sum of all liquidity in USD all wells. */ + totalLiquidityUSD: Scalars['BigDecimal']['output']; + /** Beanstalk Wells */ + wells: Array; +}; + + +export type BeanstalkWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type BeanstalkDailySnapshot = { + __typename?: 'BeanstalkDailySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All bean buying volume, including converts. */ + cumulativeBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** All downconvert convert trading volume, in USD. */ + cumulativeConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** All LP->LP convert trading volume, in USD. Counts values from both Well interactions. A LP->LP convert is defined as a remove liquidity in one Well and add liquidity in another Well. Does not include L2L or AL2L converts which have no Well trading activity. */ + cumulativeConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All LP->LP convert transfer volume, in USD. Does NOT double count values from both well interactions. A LP->LP convert is defined as a remove liquidity in one Well and add liquidity in another Well. Does not include L2L or AL2L converts which have no Well trading activity. */ + cumulativeConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** All upconvert convert trading volume, in USD. */ + cumulativeConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** All bidirectional convert trading volume, in USD. Includes LP->LP converts which are neither up nor down. */ + cumulativeConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** All bean selling volume, including converts. */ + cumulativeSellVolumeUSD: Scalars['BigDecimal']['output']; + /** All trade volume occurred, in USD. This includes any net trading activity as a result of add/remove liquidity. */ + cumulativeTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All transfer volume occurred, in USD. This includes the full value of tokens transferred in add/remove liquidity. */ + cumulativeTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Unix day (int) */ + day: Scalars['Int']['output']; + /** Delta of cumulativeBuyVolumeUSD */ + deltaBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertDownVolumeUSD */ + deltaConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertNeutralTradeVolumeUSD */ + deltaConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertNeutralTransferVolumeUSD */ + deltaConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertUpVolumeUSD */ + deltaConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertVolumeUSD */ + deltaConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of totalLiquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeSellVolumeUSD */ + deltaSellVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeTradeVolumeUSD */ + deltaTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeTransferVolumeUSD */ + deltaTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** {Beanstalk ID}-{Unix day} */ + id: Scalars['ID']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Season */ + season: Season; + /** The sum of all liquidity in USD all wells. */ + totalLiquidityUSD: Scalars['BigDecimal']['output']; + /** Beanstalk Wells */ + wells: Array; +}; + + +export type BeanstalkDailySnapshotWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type BeanstalkDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + cumulativeBuyVolumeUSD?: InputMaybe; + cumulativeBuyVolumeUSD_gt?: InputMaybe; + cumulativeBuyVolumeUSD_gte?: InputMaybe; + cumulativeBuyVolumeUSD_in?: InputMaybe>; + cumulativeBuyVolumeUSD_lt?: InputMaybe; + cumulativeBuyVolumeUSD_lte?: InputMaybe; + cumulativeBuyVolumeUSD_not?: InputMaybe; + cumulativeBuyVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertDownVolumeUSD?: InputMaybe; + cumulativeConvertDownVolumeUSD_gt?: InputMaybe; + cumulativeConvertDownVolumeUSD_gte?: InputMaybe; + cumulativeConvertDownVolumeUSD_in?: InputMaybe>; + cumulativeConvertDownVolumeUSD_lt?: InputMaybe; + cumulativeConvertDownVolumeUSD_lte?: InputMaybe; + cumulativeConvertDownVolumeUSD_not?: InputMaybe; + cumulativeConvertDownVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertNeutralTradeVolumeUSD?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + cumulativeConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_not?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertNeutralTransferVolumeUSD?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + cumulativeConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_not?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertUpVolumeUSD?: InputMaybe; + cumulativeConvertUpVolumeUSD_gt?: InputMaybe; + cumulativeConvertUpVolumeUSD_gte?: InputMaybe; + cumulativeConvertUpVolumeUSD_in?: InputMaybe>; + cumulativeConvertUpVolumeUSD_lt?: InputMaybe; + cumulativeConvertUpVolumeUSD_lte?: InputMaybe; + cumulativeConvertUpVolumeUSD_not?: InputMaybe; + cumulativeConvertUpVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertVolumeUSD?: InputMaybe; + cumulativeConvertVolumeUSD_gt?: InputMaybe; + cumulativeConvertVolumeUSD_gte?: InputMaybe; + cumulativeConvertVolumeUSD_in?: InputMaybe>; + cumulativeConvertVolumeUSD_lt?: InputMaybe; + cumulativeConvertVolumeUSD_lte?: InputMaybe; + cumulativeConvertVolumeUSD_not?: InputMaybe; + cumulativeConvertVolumeUSD_not_in?: InputMaybe>; + cumulativeSellVolumeUSD?: InputMaybe; + cumulativeSellVolumeUSD_gt?: InputMaybe; + cumulativeSellVolumeUSD_gte?: InputMaybe; + cumulativeSellVolumeUSD_in?: InputMaybe>; + cumulativeSellVolumeUSD_lt?: InputMaybe; + cumulativeSellVolumeUSD_lte?: InputMaybe; + cumulativeSellVolumeUSD_not?: InputMaybe; + cumulativeSellVolumeUSD_not_in?: InputMaybe>; + cumulativeTradeVolumeUSD?: InputMaybe; + cumulativeTradeVolumeUSD_gt?: InputMaybe; + cumulativeTradeVolumeUSD_gte?: InputMaybe; + cumulativeTradeVolumeUSD_in?: InputMaybe>; + cumulativeTradeVolumeUSD_lt?: InputMaybe; + cumulativeTradeVolumeUSD_lte?: InputMaybe; + cumulativeTradeVolumeUSD_not?: InputMaybe; + cumulativeTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeTransferVolumeUSD?: InputMaybe; + cumulativeTransferVolumeUSD_gt?: InputMaybe; + cumulativeTransferVolumeUSD_gte?: InputMaybe; + cumulativeTransferVolumeUSD_in?: InputMaybe>; + cumulativeTransferVolumeUSD_lt?: InputMaybe; + cumulativeTransferVolumeUSD_lte?: InputMaybe; + cumulativeTransferVolumeUSD_not?: InputMaybe; + cumulativeTransferVolumeUSD_not_in?: InputMaybe>; + day?: InputMaybe; + day_gt?: InputMaybe; + day_gte?: InputMaybe; + day_in?: InputMaybe>; + day_lt?: InputMaybe; + day_lte?: InputMaybe; + day_not?: InputMaybe; + day_not_in?: InputMaybe>; + deltaBuyVolumeUSD?: InputMaybe; + deltaBuyVolumeUSD_gt?: InputMaybe; + deltaBuyVolumeUSD_gte?: InputMaybe; + deltaBuyVolumeUSD_in?: InputMaybe>; + deltaBuyVolumeUSD_lt?: InputMaybe; + deltaBuyVolumeUSD_lte?: InputMaybe; + deltaBuyVolumeUSD_not?: InputMaybe; + deltaBuyVolumeUSD_not_in?: InputMaybe>; + deltaConvertDownVolumeUSD?: InputMaybe; + deltaConvertDownVolumeUSD_gt?: InputMaybe; + deltaConvertDownVolumeUSD_gte?: InputMaybe; + deltaConvertDownVolumeUSD_in?: InputMaybe>; + deltaConvertDownVolumeUSD_lt?: InputMaybe; + deltaConvertDownVolumeUSD_lte?: InputMaybe; + deltaConvertDownVolumeUSD_not?: InputMaybe; + deltaConvertDownVolumeUSD_not_in?: InputMaybe>; + deltaConvertNeutralTradeVolumeUSD?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + deltaConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_not?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + deltaConvertNeutralTransferVolumeUSD?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + deltaConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_not?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + deltaConvertUpVolumeUSD?: InputMaybe; + deltaConvertUpVolumeUSD_gt?: InputMaybe; + deltaConvertUpVolumeUSD_gte?: InputMaybe; + deltaConvertUpVolumeUSD_in?: InputMaybe>; + deltaConvertUpVolumeUSD_lt?: InputMaybe; + deltaConvertUpVolumeUSD_lte?: InputMaybe; + deltaConvertUpVolumeUSD_not?: InputMaybe; + deltaConvertUpVolumeUSD_not_in?: InputMaybe>; + deltaConvertVolumeUSD?: InputMaybe; + deltaConvertVolumeUSD_gt?: InputMaybe; + deltaConvertVolumeUSD_gte?: InputMaybe; + deltaConvertVolumeUSD_in?: InputMaybe>; + deltaConvertVolumeUSD_lt?: InputMaybe; + deltaConvertVolumeUSD_lte?: InputMaybe; + deltaConvertVolumeUSD_not?: InputMaybe; + deltaConvertVolumeUSD_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaSellVolumeUSD?: InputMaybe; + deltaSellVolumeUSD_gt?: InputMaybe; + deltaSellVolumeUSD_gte?: InputMaybe; + deltaSellVolumeUSD_in?: InputMaybe>; + deltaSellVolumeUSD_lt?: InputMaybe; + deltaSellVolumeUSD_lte?: InputMaybe; + deltaSellVolumeUSD_not?: InputMaybe; + deltaSellVolumeUSD_not_in?: InputMaybe>; + deltaTradeVolumeUSD?: InputMaybe; + deltaTradeVolumeUSD_gt?: InputMaybe; + deltaTradeVolumeUSD_gte?: InputMaybe; + deltaTradeVolumeUSD_in?: InputMaybe>; + deltaTradeVolumeUSD_lt?: InputMaybe; + deltaTradeVolumeUSD_lte?: InputMaybe; + deltaTradeVolumeUSD_not?: InputMaybe; + deltaTradeVolumeUSD_not_in?: InputMaybe>; + deltaTransferVolumeUSD?: InputMaybe; + deltaTransferVolumeUSD_gt?: InputMaybe; + deltaTransferVolumeUSD_gte?: InputMaybe; + deltaTransferVolumeUSD_in?: InputMaybe>; + deltaTransferVolumeUSD_lt?: InputMaybe; + deltaTransferVolumeUSD_lte?: InputMaybe; + deltaTransferVolumeUSD_not?: InputMaybe; + deltaTransferVolumeUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + totalLiquidityUSD?: InputMaybe; + totalLiquidityUSD_gt?: InputMaybe; + totalLiquidityUSD_gte?: InputMaybe; + totalLiquidityUSD_in?: InputMaybe>; + totalLiquidityUSD_lt?: InputMaybe; + totalLiquidityUSD_lte?: InputMaybe; + totalLiquidityUSD_not?: InputMaybe; + totalLiquidityUSD_not_in?: InputMaybe>; + wells?: InputMaybe>; + wells_?: InputMaybe; + wells_contains?: InputMaybe>; + wells_contains_nocase?: InputMaybe>; + wells_not?: InputMaybe>; + wells_not_contains?: InputMaybe>; + wells_not_contains_nocase?: InputMaybe>; +}; + +export enum BeanstalkDailySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + CumulativeBuyVolumeUsd = 'cumulativeBuyVolumeUSD', + CumulativeConvertDownVolumeUsd = 'cumulativeConvertDownVolumeUSD', + CumulativeConvertNeutralTradeVolumeUsd = 'cumulativeConvertNeutralTradeVolumeUSD', + CumulativeConvertNeutralTransferVolumeUsd = 'cumulativeConvertNeutralTransferVolumeUSD', + CumulativeConvertUpVolumeUsd = 'cumulativeConvertUpVolumeUSD', + CumulativeConvertVolumeUsd = 'cumulativeConvertVolumeUSD', + CumulativeSellVolumeUsd = 'cumulativeSellVolumeUSD', + CumulativeTradeVolumeUsd = 'cumulativeTradeVolumeUSD', + CumulativeTransferVolumeUsd = 'cumulativeTransferVolumeUSD', + Day = 'day', + DeltaBuyVolumeUsd = 'deltaBuyVolumeUSD', + DeltaConvertDownVolumeUsd = 'deltaConvertDownVolumeUSD', + DeltaConvertNeutralTradeVolumeUsd = 'deltaConvertNeutralTradeVolumeUSD', + DeltaConvertNeutralTransferVolumeUsd = 'deltaConvertNeutralTransferVolumeUSD', + DeltaConvertUpVolumeUsd = 'deltaConvertUpVolumeUSD', + DeltaConvertVolumeUsd = 'deltaConvertVolumeUSD', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaSellVolumeUsd = 'deltaSellVolumeUSD', + DeltaTradeVolumeUsd = 'deltaTradeVolumeUSD', + DeltaTransferVolumeUsd = 'deltaTransferVolumeUSD', + Id = 'id', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TotalLiquidityUsd = 'totalLiquidityUSD', + Wells = 'wells' +} + +export type BeanstalkHourlySnapshot = { + __typename?: 'BeanstalkHourlySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All bean buying volume, including converts. */ + cumulativeBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** All downconvert convert trading volume, in USD. */ + cumulativeConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** All LP->LP convert trading volume, in USD. Counts values from both Well interactions. A LP->LP convert is defined as a remove liquidity in one Well and add liquidity in another Well. Does not include L2L or AL2L converts which have no Well trading activity. */ + cumulativeConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All LP->LP convert transfer volume, in USD. Does NOT double count values from both well interactions. A LP->LP convert is defined as a remove liquidity in one Well and add liquidity in another Well. Does not include L2L or AL2L converts which have no Well trading activity. */ + cumulativeConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** All upconvert convert trading volume, in USD. */ + cumulativeConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** All bidirectional convert trading volume, in USD. Includes LP->LP converts which are neither up nor down. */ + cumulativeConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** All bean selling volume, including converts. */ + cumulativeSellVolumeUSD: Scalars['BigDecimal']['output']; + /** All trade volume occurred, in USD. This includes any net trading activity as a result of add/remove liquidity. */ + cumulativeTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All transfer volume occurred, in USD. This includes the full value of tokens transferred in add/remove liquidity. */ + cumulativeTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeBuyVolumeUSD */ + deltaBuyVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertDownVolumeUSD */ + deltaConvertDownVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertNeutralTradeVolumeUSD */ + deltaConvertNeutralTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertNeutralTransferVolumeUSD */ + deltaConvertNeutralTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertUpVolumeUSD */ + deltaConvertUpVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeConvertVolumeUSD */ + deltaConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of totalLiquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeSellVolumeUSD */ + deltaSellVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeTradeVolumeUSD */ + deltaTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeTransferVolumeUSD */ + deltaTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** {Beanstalk ID}-{Season number} */ + id: Scalars['ID']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Season */ + season: Season; + /** The sum of all liquidity in USD all wells. */ + totalLiquidityUSD: Scalars['BigDecimal']['output']; + /** Beanstalk Wells */ + wells: Array; +}; + + +export type BeanstalkHourlySnapshotWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type BeanstalkHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + cumulativeBuyVolumeUSD?: InputMaybe; + cumulativeBuyVolumeUSD_gt?: InputMaybe; + cumulativeBuyVolumeUSD_gte?: InputMaybe; + cumulativeBuyVolumeUSD_in?: InputMaybe>; + cumulativeBuyVolumeUSD_lt?: InputMaybe; + cumulativeBuyVolumeUSD_lte?: InputMaybe; + cumulativeBuyVolumeUSD_not?: InputMaybe; + cumulativeBuyVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertDownVolumeUSD?: InputMaybe; + cumulativeConvertDownVolumeUSD_gt?: InputMaybe; + cumulativeConvertDownVolumeUSD_gte?: InputMaybe; + cumulativeConvertDownVolumeUSD_in?: InputMaybe>; + cumulativeConvertDownVolumeUSD_lt?: InputMaybe; + cumulativeConvertDownVolumeUSD_lte?: InputMaybe; + cumulativeConvertDownVolumeUSD_not?: InputMaybe; + cumulativeConvertDownVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertNeutralTradeVolumeUSD?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + cumulativeConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_not?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertNeutralTransferVolumeUSD?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + cumulativeConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_not?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertUpVolumeUSD?: InputMaybe; + cumulativeConvertUpVolumeUSD_gt?: InputMaybe; + cumulativeConvertUpVolumeUSD_gte?: InputMaybe; + cumulativeConvertUpVolumeUSD_in?: InputMaybe>; + cumulativeConvertUpVolumeUSD_lt?: InputMaybe; + cumulativeConvertUpVolumeUSD_lte?: InputMaybe; + cumulativeConvertUpVolumeUSD_not?: InputMaybe; + cumulativeConvertUpVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertVolumeUSD?: InputMaybe; + cumulativeConvertVolumeUSD_gt?: InputMaybe; + cumulativeConvertVolumeUSD_gte?: InputMaybe; + cumulativeConvertVolumeUSD_in?: InputMaybe>; + cumulativeConvertVolumeUSD_lt?: InputMaybe; + cumulativeConvertVolumeUSD_lte?: InputMaybe; + cumulativeConvertVolumeUSD_not?: InputMaybe; + cumulativeConvertVolumeUSD_not_in?: InputMaybe>; + cumulativeSellVolumeUSD?: InputMaybe; + cumulativeSellVolumeUSD_gt?: InputMaybe; + cumulativeSellVolumeUSD_gte?: InputMaybe; + cumulativeSellVolumeUSD_in?: InputMaybe>; + cumulativeSellVolumeUSD_lt?: InputMaybe; + cumulativeSellVolumeUSD_lte?: InputMaybe; + cumulativeSellVolumeUSD_not?: InputMaybe; + cumulativeSellVolumeUSD_not_in?: InputMaybe>; + cumulativeTradeVolumeUSD?: InputMaybe; + cumulativeTradeVolumeUSD_gt?: InputMaybe; + cumulativeTradeVolumeUSD_gte?: InputMaybe; + cumulativeTradeVolumeUSD_in?: InputMaybe>; + cumulativeTradeVolumeUSD_lt?: InputMaybe; + cumulativeTradeVolumeUSD_lte?: InputMaybe; + cumulativeTradeVolumeUSD_not?: InputMaybe; + cumulativeTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeTransferVolumeUSD?: InputMaybe; + cumulativeTransferVolumeUSD_gt?: InputMaybe; + cumulativeTransferVolumeUSD_gte?: InputMaybe; + cumulativeTransferVolumeUSD_in?: InputMaybe>; + cumulativeTransferVolumeUSD_lt?: InputMaybe; + cumulativeTransferVolumeUSD_lte?: InputMaybe; + cumulativeTransferVolumeUSD_not?: InputMaybe; + cumulativeTransferVolumeUSD_not_in?: InputMaybe>; + deltaBuyVolumeUSD?: InputMaybe; + deltaBuyVolumeUSD_gt?: InputMaybe; + deltaBuyVolumeUSD_gte?: InputMaybe; + deltaBuyVolumeUSD_in?: InputMaybe>; + deltaBuyVolumeUSD_lt?: InputMaybe; + deltaBuyVolumeUSD_lte?: InputMaybe; + deltaBuyVolumeUSD_not?: InputMaybe; + deltaBuyVolumeUSD_not_in?: InputMaybe>; + deltaConvertDownVolumeUSD?: InputMaybe; + deltaConvertDownVolumeUSD_gt?: InputMaybe; + deltaConvertDownVolumeUSD_gte?: InputMaybe; + deltaConvertDownVolumeUSD_in?: InputMaybe>; + deltaConvertDownVolumeUSD_lt?: InputMaybe; + deltaConvertDownVolumeUSD_lte?: InputMaybe; + deltaConvertDownVolumeUSD_not?: InputMaybe; + deltaConvertDownVolumeUSD_not_in?: InputMaybe>; + deltaConvertNeutralTradeVolumeUSD?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + deltaConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_not?: InputMaybe; + deltaConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + deltaConvertNeutralTransferVolumeUSD?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + deltaConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_not?: InputMaybe; + deltaConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + deltaConvertUpVolumeUSD?: InputMaybe; + deltaConvertUpVolumeUSD_gt?: InputMaybe; + deltaConvertUpVolumeUSD_gte?: InputMaybe; + deltaConvertUpVolumeUSD_in?: InputMaybe>; + deltaConvertUpVolumeUSD_lt?: InputMaybe; + deltaConvertUpVolumeUSD_lte?: InputMaybe; + deltaConvertUpVolumeUSD_not?: InputMaybe; + deltaConvertUpVolumeUSD_not_in?: InputMaybe>; + deltaConvertVolumeUSD?: InputMaybe; + deltaConvertVolumeUSD_gt?: InputMaybe; + deltaConvertVolumeUSD_gte?: InputMaybe; + deltaConvertVolumeUSD_in?: InputMaybe>; + deltaConvertVolumeUSD_lt?: InputMaybe; + deltaConvertVolumeUSD_lte?: InputMaybe; + deltaConvertVolumeUSD_not?: InputMaybe; + deltaConvertVolumeUSD_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaSellVolumeUSD?: InputMaybe; + deltaSellVolumeUSD_gt?: InputMaybe; + deltaSellVolumeUSD_gte?: InputMaybe; + deltaSellVolumeUSD_in?: InputMaybe>; + deltaSellVolumeUSD_lt?: InputMaybe; + deltaSellVolumeUSD_lte?: InputMaybe; + deltaSellVolumeUSD_not?: InputMaybe; + deltaSellVolumeUSD_not_in?: InputMaybe>; + deltaTradeVolumeUSD?: InputMaybe; + deltaTradeVolumeUSD_gt?: InputMaybe; + deltaTradeVolumeUSD_gte?: InputMaybe; + deltaTradeVolumeUSD_in?: InputMaybe>; + deltaTradeVolumeUSD_lt?: InputMaybe; + deltaTradeVolumeUSD_lte?: InputMaybe; + deltaTradeVolumeUSD_not?: InputMaybe; + deltaTradeVolumeUSD_not_in?: InputMaybe>; + deltaTransferVolumeUSD?: InputMaybe; + deltaTransferVolumeUSD_gt?: InputMaybe; + deltaTransferVolumeUSD_gte?: InputMaybe; + deltaTransferVolumeUSD_in?: InputMaybe>; + deltaTransferVolumeUSD_lt?: InputMaybe; + deltaTransferVolumeUSD_lte?: InputMaybe; + deltaTransferVolumeUSD_not?: InputMaybe; + deltaTransferVolumeUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + totalLiquidityUSD?: InputMaybe; + totalLiquidityUSD_gt?: InputMaybe; + totalLiquidityUSD_gte?: InputMaybe; + totalLiquidityUSD_in?: InputMaybe>; + totalLiquidityUSD_lt?: InputMaybe; + totalLiquidityUSD_lte?: InputMaybe; + totalLiquidityUSD_not?: InputMaybe; + totalLiquidityUSD_not_in?: InputMaybe>; + wells?: InputMaybe>; + wells_?: InputMaybe; + wells_contains?: InputMaybe>; + wells_contains_nocase?: InputMaybe>; + wells_not?: InputMaybe>; + wells_not_contains?: InputMaybe>; + wells_not_contains_nocase?: InputMaybe>; +}; + +export enum BeanstalkHourlySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + CumulativeBuyVolumeUsd = 'cumulativeBuyVolumeUSD', + CumulativeConvertDownVolumeUsd = 'cumulativeConvertDownVolumeUSD', + CumulativeConvertNeutralTradeVolumeUsd = 'cumulativeConvertNeutralTradeVolumeUSD', + CumulativeConvertNeutralTransferVolumeUsd = 'cumulativeConvertNeutralTransferVolumeUSD', + CumulativeConvertUpVolumeUsd = 'cumulativeConvertUpVolumeUSD', + CumulativeConvertVolumeUsd = 'cumulativeConvertVolumeUSD', + CumulativeSellVolumeUsd = 'cumulativeSellVolumeUSD', + CumulativeTradeVolumeUsd = 'cumulativeTradeVolumeUSD', + CumulativeTransferVolumeUsd = 'cumulativeTransferVolumeUSD', + DeltaBuyVolumeUsd = 'deltaBuyVolumeUSD', + DeltaConvertDownVolumeUsd = 'deltaConvertDownVolumeUSD', + DeltaConvertNeutralTradeVolumeUsd = 'deltaConvertNeutralTradeVolumeUSD', + DeltaConvertNeutralTransferVolumeUsd = 'deltaConvertNeutralTransferVolumeUSD', + DeltaConvertUpVolumeUsd = 'deltaConvertUpVolumeUSD', + DeltaConvertVolumeUsd = 'deltaConvertVolumeUSD', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaSellVolumeUsd = 'deltaSellVolumeUSD', + DeltaTradeVolumeUsd = 'deltaTradeVolumeUSD', + DeltaTransferVolumeUsd = 'deltaTransferVolumeUSD', + Id = 'id', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TotalLiquidityUsd = 'totalLiquidityUSD', + Wells = 'wells' +} + +export type Beanstalk_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + cumulativeBuyVolumeUSD?: InputMaybe; + cumulativeBuyVolumeUSD_gt?: InputMaybe; + cumulativeBuyVolumeUSD_gte?: InputMaybe; + cumulativeBuyVolumeUSD_in?: InputMaybe>; + cumulativeBuyVolumeUSD_lt?: InputMaybe; + cumulativeBuyVolumeUSD_lte?: InputMaybe; + cumulativeBuyVolumeUSD_not?: InputMaybe; + cumulativeBuyVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertDownVolumeUSD?: InputMaybe; + cumulativeConvertDownVolumeUSD_gt?: InputMaybe; + cumulativeConvertDownVolumeUSD_gte?: InputMaybe; + cumulativeConvertDownVolumeUSD_in?: InputMaybe>; + cumulativeConvertDownVolumeUSD_lt?: InputMaybe; + cumulativeConvertDownVolumeUSD_lte?: InputMaybe; + cumulativeConvertDownVolumeUSD_not?: InputMaybe; + cumulativeConvertDownVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertNeutralTradeVolumeUSD?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + cumulativeConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_not?: InputMaybe; + cumulativeConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertNeutralTransferVolumeUSD?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + cumulativeConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_not?: InputMaybe; + cumulativeConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertUpVolumeUSD?: InputMaybe; + cumulativeConvertUpVolumeUSD_gt?: InputMaybe; + cumulativeConvertUpVolumeUSD_gte?: InputMaybe; + cumulativeConvertUpVolumeUSD_in?: InputMaybe>; + cumulativeConvertUpVolumeUSD_lt?: InputMaybe; + cumulativeConvertUpVolumeUSD_lte?: InputMaybe; + cumulativeConvertUpVolumeUSD_not?: InputMaybe; + cumulativeConvertUpVolumeUSD_not_in?: InputMaybe>; + cumulativeConvertVolumeUSD?: InputMaybe; + cumulativeConvertVolumeUSD_gt?: InputMaybe; + cumulativeConvertVolumeUSD_gte?: InputMaybe; + cumulativeConvertVolumeUSD_in?: InputMaybe>; + cumulativeConvertVolumeUSD_lt?: InputMaybe; + cumulativeConvertVolumeUSD_lte?: InputMaybe; + cumulativeConvertVolumeUSD_not?: InputMaybe; + cumulativeConvertVolumeUSD_not_in?: InputMaybe>; + cumulativeSellVolumeUSD?: InputMaybe; + cumulativeSellVolumeUSD_gt?: InputMaybe; + cumulativeSellVolumeUSD_gte?: InputMaybe; + cumulativeSellVolumeUSD_in?: InputMaybe>; + cumulativeSellVolumeUSD_lt?: InputMaybe; + cumulativeSellVolumeUSD_lte?: InputMaybe; + cumulativeSellVolumeUSD_not?: InputMaybe; + cumulativeSellVolumeUSD_not_in?: InputMaybe>; + cumulativeTradeVolumeUSD?: InputMaybe; + cumulativeTradeVolumeUSD_gt?: InputMaybe; + cumulativeTradeVolumeUSD_gte?: InputMaybe; + cumulativeTradeVolumeUSD_in?: InputMaybe>; + cumulativeTradeVolumeUSD_lt?: InputMaybe; + cumulativeTradeVolumeUSD_lte?: InputMaybe; + cumulativeTradeVolumeUSD_not?: InputMaybe; + cumulativeTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeTransferVolumeUSD?: InputMaybe; + cumulativeTransferVolumeUSD_gt?: InputMaybe; + cumulativeTransferVolumeUSD_gte?: InputMaybe; + cumulativeTransferVolumeUSD_in?: InputMaybe>; + cumulativeTransferVolumeUSD_lt?: InputMaybe; + cumulativeTransferVolumeUSD_lte?: InputMaybe; + cumulativeTransferVolumeUSD_not?: InputMaybe; + cumulativeTransferVolumeUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + lastSeason?: InputMaybe; + lastSeason_?: InputMaybe; + lastSeason_contains?: InputMaybe; + lastSeason_contains_nocase?: InputMaybe; + lastSeason_ends_with?: InputMaybe; + lastSeason_ends_with_nocase?: InputMaybe; + lastSeason_gt?: InputMaybe; + lastSeason_gte?: InputMaybe; + lastSeason_in?: InputMaybe>; + lastSeason_lt?: InputMaybe; + lastSeason_lte?: InputMaybe; + lastSeason_not?: InputMaybe; + lastSeason_not_contains?: InputMaybe; + lastSeason_not_contains_nocase?: InputMaybe; + lastSeason_not_ends_with?: InputMaybe; + lastSeason_not_ends_with_nocase?: InputMaybe; + lastSeason_not_in?: InputMaybe>; + lastSeason_not_starts_with?: InputMaybe; + lastSeason_not_starts_with_nocase?: InputMaybe; + lastSeason_starts_with?: InputMaybe; + lastSeason_starts_with_nocase?: InputMaybe; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + or?: InputMaybe>>; + rollingDailyBuyVolumeUSD?: InputMaybe; + rollingDailyBuyVolumeUSD_gt?: InputMaybe; + rollingDailyBuyVolumeUSD_gte?: InputMaybe; + rollingDailyBuyVolumeUSD_in?: InputMaybe>; + rollingDailyBuyVolumeUSD_lt?: InputMaybe; + rollingDailyBuyVolumeUSD_lte?: InputMaybe; + rollingDailyBuyVolumeUSD_not?: InputMaybe; + rollingDailyBuyVolumeUSD_not_in?: InputMaybe>; + rollingDailyConvertDownVolumeUSD?: InputMaybe; + rollingDailyConvertDownVolumeUSD_gt?: InputMaybe; + rollingDailyConvertDownVolumeUSD_gte?: InputMaybe; + rollingDailyConvertDownVolumeUSD_in?: InputMaybe>; + rollingDailyConvertDownVolumeUSD_lt?: InputMaybe; + rollingDailyConvertDownVolumeUSD_lte?: InputMaybe; + rollingDailyConvertDownVolumeUSD_not?: InputMaybe; + rollingDailyConvertDownVolumeUSD_not_in?: InputMaybe>; + rollingDailyConvertNeutralTradeVolumeUSD?: InputMaybe; + rollingDailyConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + rollingDailyConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + rollingDailyConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + rollingDailyConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + rollingDailyConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + rollingDailyConvertNeutralTradeVolumeUSD_not?: InputMaybe; + rollingDailyConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + rollingDailyConvertNeutralTransferVolumeUSD?: InputMaybe; + rollingDailyConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + rollingDailyConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + rollingDailyConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + rollingDailyConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + rollingDailyConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + rollingDailyConvertNeutralTransferVolumeUSD_not?: InputMaybe; + rollingDailyConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + rollingDailyConvertUpVolumeUSD?: InputMaybe; + rollingDailyConvertUpVolumeUSD_gt?: InputMaybe; + rollingDailyConvertUpVolumeUSD_gte?: InputMaybe; + rollingDailyConvertUpVolumeUSD_in?: InputMaybe>; + rollingDailyConvertUpVolumeUSD_lt?: InputMaybe; + rollingDailyConvertUpVolumeUSD_lte?: InputMaybe; + rollingDailyConvertUpVolumeUSD_not?: InputMaybe; + rollingDailyConvertUpVolumeUSD_not_in?: InputMaybe>; + rollingDailyConvertVolumeUSD?: InputMaybe; + rollingDailyConvertVolumeUSD_gt?: InputMaybe; + rollingDailyConvertVolumeUSD_gte?: InputMaybe; + rollingDailyConvertVolumeUSD_in?: InputMaybe>; + rollingDailyConvertVolumeUSD_lt?: InputMaybe; + rollingDailyConvertVolumeUSD_lte?: InputMaybe; + rollingDailyConvertVolumeUSD_not?: InputMaybe; + rollingDailyConvertVolumeUSD_not_in?: InputMaybe>; + rollingDailySellVolumeUSD?: InputMaybe; + rollingDailySellVolumeUSD_gt?: InputMaybe; + rollingDailySellVolumeUSD_gte?: InputMaybe; + rollingDailySellVolumeUSD_in?: InputMaybe>; + rollingDailySellVolumeUSD_lt?: InputMaybe; + rollingDailySellVolumeUSD_lte?: InputMaybe; + rollingDailySellVolumeUSD_not?: InputMaybe; + rollingDailySellVolumeUSD_not_in?: InputMaybe>; + rollingDailyTradeVolumeUSD?: InputMaybe; + rollingDailyTradeVolumeUSD_gt?: InputMaybe; + rollingDailyTradeVolumeUSD_gte?: InputMaybe; + rollingDailyTradeVolumeUSD_in?: InputMaybe>; + rollingDailyTradeVolumeUSD_lt?: InputMaybe; + rollingDailyTradeVolumeUSD_lte?: InputMaybe; + rollingDailyTradeVolumeUSD_not?: InputMaybe; + rollingDailyTradeVolumeUSD_not_in?: InputMaybe>; + rollingDailyTransferVolumeUSD?: InputMaybe; + rollingDailyTransferVolumeUSD_gt?: InputMaybe; + rollingDailyTransferVolumeUSD_gte?: InputMaybe; + rollingDailyTransferVolumeUSD_in?: InputMaybe>; + rollingDailyTransferVolumeUSD_lt?: InputMaybe; + rollingDailyTransferVolumeUSD_lte?: InputMaybe; + rollingDailyTransferVolumeUSD_not?: InputMaybe; + rollingDailyTransferVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyBuyVolumeUSD?: InputMaybe; + rollingWeeklyBuyVolumeUSD_gt?: InputMaybe; + rollingWeeklyBuyVolumeUSD_gte?: InputMaybe; + rollingWeeklyBuyVolumeUSD_in?: InputMaybe>; + rollingWeeklyBuyVolumeUSD_lt?: InputMaybe; + rollingWeeklyBuyVolumeUSD_lte?: InputMaybe; + rollingWeeklyBuyVolumeUSD_not?: InputMaybe; + rollingWeeklyBuyVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyConvertDownVolumeUSD?: InputMaybe; + rollingWeeklyConvertDownVolumeUSD_gt?: InputMaybe; + rollingWeeklyConvertDownVolumeUSD_gte?: InputMaybe; + rollingWeeklyConvertDownVolumeUSD_in?: InputMaybe>; + rollingWeeklyConvertDownVolumeUSD_lt?: InputMaybe; + rollingWeeklyConvertDownVolumeUSD_lte?: InputMaybe; + rollingWeeklyConvertDownVolumeUSD_not?: InputMaybe; + rollingWeeklyConvertDownVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyConvertNeutralTradeVolumeUSD?: InputMaybe; + rollingWeeklyConvertNeutralTradeVolumeUSD_gt?: InputMaybe; + rollingWeeklyConvertNeutralTradeVolumeUSD_gte?: InputMaybe; + rollingWeeklyConvertNeutralTradeVolumeUSD_in?: InputMaybe>; + rollingWeeklyConvertNeutralTradeVolumeUSD_lt?: InputMaybe; + rollingWeeklyConvertNeutralTradeVolumeUSD_lte?: InputMaybe; + rollingWeeklyConvertNeutralTradeVolumeUSD_not?: InputMaybe; + rollingWeeklyConvertNeutralTradeVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyConvertNeutralTransferVolumeUSD?: InputMaybe; + rollingWeeklyConvertNeutralTransferVolumeUSD_gt?: InputMaybe; + rollingWeeklyConvertNeutralTransferVolumeUSD_gte?: InputMaybe; + rollingWeeklyConvertNeutralTransferVolumeUSD_in?: InputMaybe>; + rollingWeeklyConvertNeutralTransferVolumeUSD_lt?: InputMaybe; + rollingWeeklyConvertNeutralTransferVolumeUSD_lte?: InputMaybe; + rollingWeeklyConvertNeutralTransferVolumeUSD_not?: InputMaybe; + rollingWeeklyConvertNeutralTransferVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyConvertUpVolumeUSD?: InputMaybe; + rollingWeeklyConvertUpVolumeUSD_gt?: InputMaybe; + rollingWeeklyConvertUpVolumeUSD_gte?: InputMaybe; + rollingWeeklyConvertUpVolumeUSD_in?: InputMaybe>; + rollingWeeklyConvertUpVolumeUSD_lt?: InputMaybe; + rollingWeeklyConvertUpVolumeUSD_lte?: InputMaybe; + rollingWeeklyConvertUpVolumeUSD_not?: InputMaybe; + rollingWeeklyConvertUpVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyConvertVolumeUSD?: InputMaybe; + rollingWeeklyConvertVolumeUSD_gt?: InputMaybe; + rollingWeeklyConvertVolumeUSD_gte?: InputMaybe; + rollingWeeklyConvertVolumeUSD_in?: InputMaybe>; + rollingWeeklyConvertVolumeUSD_lt?: InputMaybe; + rollingWeeklyConvertVolumeUSD_lte?: InputMaybe; + rollingWeeklyConvertVolumeUSD_not?: InputMaybe; + rollingWeeklyConvertVolumeUSD_not_in?: InputMaybe>; + rollingWeeklySellVolumeUSD?: InputMaybe; + rollingWeeklySellVolumeUSD_gt?: InputMaybe; + rollingWeeklySellVolumeUSD_gte?: InputMaybe; + rollingWeeklySellVolumeUSD_in?: InputMaybe>; + rollingWeeklySellVolumeUSD_lt?: InputMaybe; + rollingWeeklySellVolumeUSD_lte?: InputMaybe; + rollingWeeklySellVolumeUSD_not?: InputMaybe; + rollingWeeklySellVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyTradeVolumeUSD?: InputMaybe; + rollingWeeklyTradeVolumeUSD_gt?: InputMaybe; + rollingWeeklyTradeVolumeUSD_gte?: InputMaybe; + rollingWeeklyTradeVolumeUSD_in?: InputMaybe>; + rollingWeeklyTradeVolumeUSD_lt?: InputMaybe; + rollingWeeklyTradeVolumeUSD_lte?: InputMaybe; + rollingWeeklyTradeVolumeUSD_not?: InputMaybe; + rollingWeeklyTradeVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyTransferVolumeUSD?: InputMaybe; + rollingWeeklyTransferVolumeUSD_gt?: InputMaybe; + rollingWeeklyTransferVolumeUSD_gte?: InputMaybe; + rollingWeeklyTransferVolumeUSD_in?: InputMaybe>; + rollingWeeklyTransferVolumeUSD_lt?: InputMaybe; + rollingWeeklyTransferVolumeUSD_lte?: InputMaybe; + rollingWeeklyTransferVolumeUSD_not?: InputMaybe; + rollingWeeklyTransferVolumeUSD_not_in?: InputMaybe>; + totalLiquidityUSD?: InputMaybe; + totalLiquidityUSD_gt?: InputMaybe; + totalLiquidityUSD_gte?: InputMaybe; + totalLiquidityUSD_in?: InputMaybe>; + totalLiquidityUSD_lt?: InputMaybe; + totalLiquidityUSD_lte?: InputMaybe; + totalLiquidityUSD_not?: InputMaybe; + totalLiquidityUSD_not_in?: InputMaybe>; + wells?: InputMaybe>; + wells_?: InputMaybe; + wells_contains?: InputMaybe>; + wells_contains_nocase?: InputMaybe>; + wells_not?: InputMaybe>; + wells_not_contains?: InputMaybe>; + wells_not_contains_nocase?: InputMaybe>; +}; + +export enum Beanstalk_OrderBy { + CreatedTimestamp = 'createdTimestamp', + CumulativeBuyVolumeUsd = 'cumulativeBuyVolumeUSD', + CumulativeConvertDownVolumeUsd = 'cumulativeConvertDownVolumeUSD', + CumulativeConvertNeutralTradeVolumeUsd = 'cumulativeConvertNeutralTradeVolumeUSD', + CumulativeConvertNeutralTransferVolumeUsd = 'cumulativeConvertNeutralTransferVolumeUSD', + CumulativeConvertUpVolumeUsd = 'cumulativeConvertUpVolumeUSD', + CumulativeConvertVolumeUsd = 'cumulativeConvertVolumeUSD', + CumulativeSellVolumeUsd = 'cumulativeSellVolumeUSD', + CumulativeTradeVolumeUsd = 'cumulativeTradeVolumeUSD', + CumulativeTransferVolumeUsd = 'cumulativeTransferVolumeUSD', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + LastSeason = 'lastSeason', + LastSeasonId = 'lastSeason__id', + LastSeasonSeason = 'lastSeason__season', + LastSeasonTimestamp = 'lastSeason__timestamp', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + RollingDailyBuyVolumeUsd = 'rollingDailyBuyVolumeUSD', + RollingDailyConvertDownVolumeUsd = 'rollingDailyConvertDownVolumeUSD', + RollingDailyConvertNeutralTradeVolumeUsd = 'rollingDailyConvertNeutralTradeVolumeUSD', + RollingDailyConvertNeutralTransferVolumeUsd = 'rollingDailyConvertNeutralTransferVolumeUSD', + RollingDailyConvertUpVolumeUsd = 'rollingDailyConvertUpVolumeUSD', + RollingDailyConvertVolumeUsd = 'rollingDailyConvertVolumeUSD', + RollingDailySellVolumeUsd = 'rollingDailySellVolumeUSD', + RollingDailyTradeVolumeUsd = 'rollingDailyTradeVolumeUSD', + RollingDailyTransferVolumeUsd = 'rollingDailyTransferVolumeUSD', + RollingWeeklyBuyVolumeUsd = 'rollingWeeklyBuyVolumeUSD', + RollingWeeklyConvertDownVolumeUsd = 'rollingWeeklyConvertDownVolumeUSD', + RollingWeeklyConvertNeutralTradeVolumeUsd = 'rollingWeeklyConvertNeutralTradeVolumeUSD', + RollingWeeklyConvertNeutralTransferVolumeUsd = 'rollingWeeklyConvertNeutralTransferVolumeUSD', + RollingWeeklyConvertUpVolumeUsd = 'rollingWeeklyConvertUpVolumeUSD', + RollingWeeklyConvertVolumeUsd = 'rollingWeeklyConvertVolumeUSD', + RollingWeeklySellVolumeUsd = 'rollingWeeklySellVolumeUSD', + RollingWeeklyTradeVolumeUsd = 'rollingWeeklyTradeVolumeUSD', + RollingWeeklyTransferVolumeUsd = 'rollingWeeklyTransferVolumeUSD', + TotalLiquidityUsd = 'totalLiquidityUSD', + Wells = 'wells' +} + +export type BlockChangedFilter = { + number_gte: Scalars['Int']['input']; +}; + +export type Block_Height = { + hash?: InputMaybe; + number?: InputMaybe; + number_gte?: InputMaybe; +}; + +export type ConvertCandidate = { + __typename?: 'ConvertCandidate'; + /** The most recent add liquidity Trade */ + addLiquidityTrade?: Maybe; + /** internal */ + id: Scalars['ID']['output']; + /** The most recent remove liquidity Trade */ + removeLiquidityTrade?: Maybe; +}; + +export type ConvertCandidate_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + addLiquidityTrade?: InputMaybe; + addLiquidityTrade_?: InputMaybe; + addLiquidityTrade_contains?: InputMaybe; + addLiquidityTrade_contains_nocase?: InputMaybe; + addLiquidityTrade_ends_with?: InputMaybe; + addLiquidityTrade_ends_with_nocase?: InputMaybe; + addLiquidityTrade_gt?: InputMaybe; + addLiquidityTrade_gte?: InputMaybe; + addLiquidityTrade_in?: InputMaybe>; + addLiquidityTrade_lt?: InputMaybe; + addLiquidityTrade_lte?: InputMaybe; + addLiquidityTrade_not?: InputMaybe; + addLiquidityTrade_not_contains?: InputMaybe; + addLiquidityTrade_not_contains_nocase?: InputMaybe; + addLiquidityTrade_not_ends_with?: InputMaybe; + addLiquidityTrade_not_ends_with_nocase?: InputMaybe; + addLiquidityTrade_not_in?: InputMaybe>; + addLiquidityTrade_not_starts_with?: InputMaybe; + addLiquidityTrade_not_starts_with_nocase?: InputMaybe; + addLiquidityTrade_starts_with?: InputMaybe; + addLiquidityTrade_starts_with_nocase?: InputMaybe; + and?: InputMaybe>>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + removeLiquidityTrade?: InputMaybe; + removeLiquidityTrade_?: InputMaybe; + removeLiquidityTrade_contains?: InputMaybe; + removeLiquidityTrade_contains_nocase?: InputMaybe; + removeLiquidityTrade_ends_with?: InputMaybe; + removeLiquidityTrade_ends_with_nocase?: InputMaybe; + removeLiquidityTrade_gt?: InputMaybe; + removeLiquidityTrade_gte?: InputMaybe; + removeLiquidityTrade_in?: InputMaybe>; + removeLiquidityTrade_lt?: InputMaybe; + removeLiquidityTrade_lte?: InputMaybe; + removeLiquidityTrade_not?: InputMaybe; + removeLiquidityTrade_not_contains?: InputMaybe; + removeLiquidityTrade_not_contains_nocase?: InputMaybe; + removeLiquidityTrade_not_ends_with?: InputMaybe; + removeLiquidityTrade_not_ends_with_nocase?: InputMaybe; + removeLiquidityTrade_not_in?: InputMaybe>; + removeLiquidityTrade_not_starts_with?: InputMaybe; + removeLiquidityTrade_not_starts_with_nocase?: InputMaybe; + removeLiquidityTrade_starts_with?: InputMaybe; + removeLiquidityTrade_starts_with_nocase?: InputMaybe; +}; + +export enum ConvertCandidate_OrderBy { + AddLiquidityTrade = 'addLiquidityTrade', + AddLiquidityTradeBlockNumber = 'addLiquidityTrade__blockNumber', + AddLiquidityTradeHash = 'addLiquidityTrade__hash', + AddLiquidityTradeId = 'addLiquidityTrade__id', + AddLiquidityTradeIsConvert = 'addLiquidityTrade__isConvert', + AddLiquidityTradeLiqLpTokenAmount = 'addLiquidityTrade__liqLpTokenAmount', + AddLiquidityTradeLogIndex = 'addLiquidityTrade__logIndex', + AddLiquidityTradeSwapAmountIn = 'addLiquidityTrade__swapAmountIn', + AddLiquidityTradeSwapAmountOut = 'addLiquidityTrade__swapAmountOut', + AddLiquidityTradeTimestamp = 'addLiquidityTrade__timestamp', + AddLiquidityTradeTradeType = 'addLiquidityTrade__tradeType', + AddLiquidityTradeTradeVolumeUsd = 'addLiquidityTrade__tradeVolumeUSD', + AddLiquidityTradeTransferVolumeUsd = 'addLiquidityTrade__transferVolumeUSD', + Id = 'id', + RemoveLiquidityTrade = 'removeLiquidityTrade', + RemoveLiquidityTradeBlockNumber = 'removeLiquidityTrade__blockNumber', + RemoveLiquidityTradeHash = 'removeLiquidityTrade__hash', + RemoveLiquidityTradeId = 'removeLiquidityTrade__id', + RemoveLiquidityTradeIsConvert = 'removeLiquidityTrade__isConvert', + RemoveLiquidityTradeLiqLpTokenAmount = 'removeLiquidityTrade__liqLpTokenAmount', + RemoveLiquidityTradeLogIndex = 'removeLiquidityTrade__logIndex', + RemoveLiquidityTradeSwapAmountIn = 'removeLiquidityTrade__swapAmountIn', + RemoveLiquidityTradeSwapAmountOut = 'removeLiquidityTrade__swapAmountOut', + RemoveLiquidityTradeTimestamp = 'removeLiquidityTrade__timestamp', + RemoveLiquidityTradeTradeType = 'removeLiquidityTrade__tradeType', + RemoveLiquidityTradeTradeVolumeUsd = 'removeLiquidityTrade__tradeVolumeUSD', + RemoveLiquidityTradeTransferVolumeUsd = 'removeLiquidityTrade__transferVolumeUSD' +} + +export type Implementation = { + __typename?: 'Implementation'; + /** Implementation address */ + id: Scalars['Bytes']['output']; + /** Wells deployed with this implementation */ + wells: Array; +}; + + +export type ImplementationWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Implementation_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + wells_?: InputMaybe; +}; + +export enum Implementation_OrderBy { + Id = 'id', + Wells = 'wells' +} + +/** Defines the order direction, either ascending or descending */ +export enum OrderDirection { + Asc = 'asc', + Desc = 'desc' +} + +export type Pump = { + __typename?: 'Pump'; + /** Pump address */ + id: Scalars['Bytes']['output']; + /** Wells associated with this pump */ + wells: Array; +}; + + +export type PumpWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Pump_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + wells_?: InputMaybe; +}; + +export enum Pump_OrderBy { + Id = 'id', + Wells = 'wells' +} + +export type Query = { + __typename?: 'Query'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + account?: Maybe; + accounts: Array; + aquifer?: Maybe; + aquifers: Array; + beanstalk?: Maybe; + beanstalkDailySnapshot?: Maybe; + beanstalkDailySnapshots: Array; + beanstalkHourlySnapshot?: Maybe; + beanstalkHourlySnapshots: Array; + beanstalks: Array; + convertCandidate?: Maybe; + convertCandidates: Array; + implementation?: Maybe; + implementations: Array; + pump?: Maybe; + pumps: Array; + season?: Maybe; + seasons: Array; + token?: Maybe; + tokens: Array; + trade?: Maybe; + trades: Array; + version?: Maybe; + versions: Array; + well?: Maybe; + wellDailySnapshot?: Maybe; + wellDailySnapshots: Array; + wellFunction?: Maybe; + wellFunctions: Array; + wellHourlySnapshot?: Maybe; + wellHourlySnapshots: Array; + wellUpgradeHistories: Array; + wellUpgradeHistory?: Maybe; + wells: Array; +}; + + +export type Query_MetaArgs = { + block?: InputMaybe; +}; + + +export type QueryAccountArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryAccountsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryAquiferArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryAquifersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBeanstalkArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanstalkDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanstalkDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBeanstalkHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanstalkHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBeanstalksArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryConvertCandidateArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryConvertCandidatesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryImplementationArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryImplementationsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPumpArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPumpsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySeasonArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySeasonsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTradeArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTradesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryVersionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryVersionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWellDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWellDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellFunctionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWellFunctionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWellHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellUpgradeHistoriesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellUpgradeHistoryArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWellsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Season = { + __typename?: 'Season'; + beanstalkDailySnapshots: Array; + beanstalkHourlySnapshots: Array; + /** Season number (string) */ + id: Scalars['ID']['output']; + /** Season number (int) */ + season: Scalars['Int']['output']; + /** Timestamp of the start of this season */ + timestamp: Scalars['BigInt']['output']; + wellDailySnapshots: Array; + wellHourlySnapshots: Array; +}; + + +export type SeasonBeanstalkDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SeasonBeanstalkHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SeasonWellDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SeasonWellHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Season_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beanstalkDailySnapshots_?: InputMaybe; + beanstalkHourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + wellDailySnapshots_?: InputMaybe; + wellHourlySnapshots_?: InputMaybe; +}; + +export enum Season_OrderBy { + BeanstalkDailySnapshots = 'beanstalkDailySnapshots', + BeanstalkHourlySnapshots = 'beanstalkHourlySnapshots', + Id = 'id', + Season = 'season', + Timestamp = 'timestamp', + WellDailySnapshots = 'wellDailySnapshots', + WellHourlySnapshots = 'wellHourlySnapshots' +} + +export type Subscription = { + __typename?: 'Subscription'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + account?: Maybe; + accounts: Array; + aquifer?: Maybe; + aquifers: Array; + beanstalk?: Maybe; + beanstalkDailySnapshot?: Maybe; + beanstalkDailySnapshots: Array; + beanstalkHourlySnapshot?: Maybe; + beanstalkHourlySnapshots: Array; + beanstalks: Array; + convertCandidate?: Maybe; + convertCandidates: Array; + implementation?: Maybe; + implementations: Array; + pump?: Maybe; + pumps: Array; + season?: Maybe; + seasons: Array; + token?: Maybe; + tokens: Array; + trade?: Maybe; + trades: Array; + version?: Maybe; + versions: Array; + well?: Maybe; + wellDailySnapshot?: Maybe; + wellDailySnapshots: Array; + wellFunction?: Maybe; + wellFunctions: Array; + wellHourlySnapshot?: Maybe; + wellHourlySnapshots: Array; + wellUpgradeHistories: Array; + wellUpgradeHistory?: Maybe; + wells: Array; +}; + + +export type Subscription_MetaArgs = { + block?: InputMaybe; +}; + + +export type SubscriptionAccountArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionAccountsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionAquiferArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionAquifersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBeanstalkArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanstalkDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanstalkDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBeanstalkHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanstalkHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBeanstalksArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionConvertCandidateArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionConvertCandidatesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionImplementationArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionImplementationsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPumpArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPumpsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSeasonArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSeasonsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTradeArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTradesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionVersionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionVersionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWellDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWellDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellFunctionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWellFunctionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWellHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellUpgradeHistoriesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellUpgradeHistoryArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWellsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Token = { + __typename?: 'Token'; + /** The number of decimal places this token uses, default to 18 */ + decimals: Scalars['Int']['output']; + /** Smart contract address of the token */ + id: Scalars['Bytes']['output']; + /** Optional field to track the block number of the last token price */ + lastPriceBlockNumber: Scalars['BigInt']['output']; + /** Optional field to track the price of a token, mostly for caching purposes */ + lastPriceUSD: Scalars['BigDecimal']['output']; + /** Name of the token, mirrored from the smart contract */ + name: Scalars['String']['output']; + /** Symbol of the token, mirrored from the smart contract */ + symbol: Scalars['String']['output']; +}; + +export type Token_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastPriceBlockNumber?: InputMaybe; + lastPriceBlockNumber_gt?: InputMaybe; + lastPriceBlockNumber_gte?: InputMaybe; + lastPriceBlockNumber_in?: InputMaybe>; + lastPriceBlockNumber_lt?: InputMaybe; + lastPriceBlockNumber_lte?: InputMaybe; + lastPriceBlockNumber_not?: InputMaybe; + lastPriceBlockNumber_not_in?: InputMaybe>; + lastPriceUSD?: InputMaybe; + lastPriceUSD_gt?: InputMaybe; + lastPriceUSD_gte?: InputMaybe; + lastPriceUSD_in?: InputMaybe>; + lastPriceUSD_lt?: InputMaybe; + lastPriceUSD_lte?: InputMaybe; + lastPriceUSD_not?: InputMaybe; + lastPriceUSD_not_in?: InputMaybe>; + name?: InputMaybe; + name_contains?: InputMaybe; + name_contains_nocase?: InputMaybe; + name_ends_with?: InputMaybe; + name_ends_with_nocase?: InputMaybe; + name_gt?: InputMaybe; + name_gte?: InputMaybe; + name_in?: InputMaybe>; + name_lt?: InputMaybe; + name_lte?: InputMaybe; + name_not?: InputMaybe; + name_not_contains?: InputMaybe; + name_not_contains_nocase?: InputMaybe; + name_not_ends_with?: InputMaybe; + name_not_ends_with_nocase?: InputMaybe; + name_not_in?: InputMaybe>; + name_not_starts_with?: InputMaybe; + name_not_starts_with_nocase?: InputMaybe; + name_starts_with?: InputMaybe; + name_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + symbol?: InputMaybe; + symbol_contains?: InputMaybe; + symbol_contains_nocase?: InputMaybe; + symbol_ends_with?: InputMaybe; + symbol_ends_with_nocase?: InputMaybe; + symbol_gt?: InputMaybe; + symbol_gte?: InputMaybe; + symbol_in?: InputMaybe>; + symbol_lt?: InputMaybe; + symbol_lte?: InputMaybe; + symbol_not?: InputMaybe; + symbol_not_contains?: InputMaybe; + symbol_not_contains_nocase?: InputMaybe; + symbol_not_ends_with?: InputMaybe; + symbol_not_ends_with_nocase?: InputMaybe; + symbol_not_in?: InputMaybe>; + symbol_not_starts_with?: InputMaybe; + symbol_not_starts_with_nocase?: InputMaybe; + symbol_starts_with?: InputMaybe; + symbol_starts_with_nocase?: InputMaybe; +}; + +export enum Token_OrderBy { + Decimals = 'decimals', + Id = 'id', + LastPriceBlockNumber = 'lastPriceBlockNumber', + LastPriceUsd = 'lastPriceUSD', + Name = 'name', + Symbol = 'symbol' +} + +export type Trade = { + __typename?: 'Trade'; + /** Account that sent this transaction */ + account: Account; + /** Well.reserves after this event */ + afterReserves: Array; + /** Well.tokenRates before this event */ + afterTokenRates: Array; + /** Well.reserves before this event */ + beforeReserves: Array; + /** Well.tokenRates before this event */ + beforeTokenRates: Array; + /** Same as tradeVolumeReserves, but further includes absolute tokens on both sides of the effective trade. */ + biTradeVolumeReserves: Array; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** {TradeType}-{Transaction hash}-{Well}-{LP token amount}(-{log index})? | The ID is constructed in this fashion to allow any subsequent event in the same transaction to identify this entity. (Adds log index if necessary to prevent collision) */ + id: Scalars['ID']['output']; + /** [Add/Remove Liquidity] Boolean indicating whether this liquidity addition is a Beanstalk convert */ + isConvert: Scalars['Boolean']['output']; + /** [Add/Remove Liquidity] Amount of liquidity tokens minted/burned */ + liqLpTokenAmount?: Maybe; + /** [Add/Remove Liquidity] Amount of input/output tokens */ + liqReservesAmount?: Maybe>; + /** Event log index. */ + logIndex: Scalars['Int']['output']; + /** [Swap] Amount of token sold into the well */ + swapAmountIn?: Maybe; + /** [Swap] Amount of the token bought from the well */ + swapAmountOut?: Maybe; + /** [Swap] Token sold into the well */ + swapFromToken?: Maybe; + /** [Swap] Token bought from the well */ + swapToToken?: Maybe; + /** Timestamp of this event */ + timestamp: Scalars['BigInt']['output']; + /** Trade type discriminator */ + tradeType: TradeType; + /** Trade volume for each token, in native amount, as a result of this event. The ordering should be the same as the well's `tokens` field. */ + tradeVolumeReserves: Array; + /** Trade volume for each token, in USD, as a result of this event. The ordering should be the same as the well's `tokens` field. */ + tradeVolumeReservesUSD: Array; + /** Trade volume in USD as a result of this event. */ + tradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Transfer volume for each token, in native amount. The ordering should be the same as the well's `tokens` field. */ + transferVolumeReserves: Array; + /** Transfer volume for each token, in USD. The ordering should be the same as the well's `tokens` field. */ + transferVolumeReservesUSD: Array; + /** Transfer volume in USD as a result of this event. */ + transferVolumeUSD: Scalars['BigDecimal']['output']; + /** The well this trade occurred in */ + well: Well; +}; + +export enum TradeType { + AddLiquidity = 'ADD_LIQUIDITY', + RemoveLiquidity = 'REMOVE_LIQUIDITY', + Swap = 'SWAP' +} + +export type Trade_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + account?: InputMaybe; + account_?: InputMaybe; + account_contains?: InputMaybe; + account_contains_nocase?: InputMaybe; + account_ends_with?: InputMaybe; + account_ends_with_nocase?: InputMaybe; + account_gt?: InputMaybe; + account_gte?: InputMaybe; + account_in?: InputMaybe>; + account_lt?: InputMaybe; + account_lte?: InputMaybe; + account_not?: InputMaybe; + account_not_contains?: InputMaybe; + account_not_contains_nocase?: InputMaybe; + account_not_ends_with?: InputMaybe; + account_not_ends_with_nocase?: InputMaybe; + account_not_in?: InputMaybe>; + account_not_starts_with?: InputMaybe; + account_not_starts_with_nocase?: InputMaybe; + account_starts_with?: InputMaybe; + account_starts_with_nocase?: InputMaybe; + afterReserves?: InputMaybe>; + afterReserves_contains?: InputMaybe>; + afterReserves_contains_nocase?: InputMaybe>; + afterReserves_not?: InputMaybe>; + afterReserves_not_contains?: InputMaybe>; + afterReserves_not_contains_nocase?: InputMaybe>; + afterTokenRates?: InputMaybe>; + afterTokenRates_contains?: InputMaybe>; + afterTokenRates_contains_nocase?: InputMaybe>; + afterTokenRates_not?: InputMaybe>; + afterTokenRates_not_contains?: InputMaybe>; + afterTokenRates_not_contains_nocase?: InputMaybe>; + and?: InputMaybe>>; + beforeReserves?: InputMaybe>; + beforeReserves_contains?: InputMaybe>; + beforeReserves_contains_nocase?: InputMaybe>; + beforeReserves_not?: InputMaybe>; + beforeReserves_not_contains?: InputMaybe>; + beforeReserves_not_contains_nocase?: InputMaybe>; + beforeTokenRates?: InputMaybe>; + beforeTokenRates_contains?: InputMaybe>; + beforeTokenRates_contains_nocase?: InputMaybe>; + beforeTokenRates_not?: InputMaybe>; + beforeTokenRates_not_contains?: InputMaybe>; + beforeTokenRates_not_contains_nocase?: InputMaybe>; + biTradeVolumeReserves?: InputMaybe>; + biTradeVolumeReserves_contains?: InputMaybe>; + biTradeVolumeReserves_contains_nocase?: InputMaybe>; + biTradeVolumeReserves_not?: InputMaybe>; + biTradeVolumeReserves_not_contains?: InputMaybe>; + biTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + isConvert?: InputMaybe; + isConvert_in?: InputMaybe>; + isConvert_not?: InputMaybe; + isConvert_not_in?: InputMaybe>; + liqLpTokenAmount?: InputMaybe; + liqLpTokenAmount_gt?: InputMaybe; + liqLpTokenAmount_gte?: InputMaybe; + liqLpTokenAmount_in?: InputMaybe>; + liqLpTokenAmount_lt?: InputMaybe; + liqLpTokenAmount_lte?: InputMaybe; + liqLpTokenAmount_not?: InputMaybe; + liqLpTokenAmount_not_in?: InputMaybe>; + liqReservesAmount?: InputMaybe>; + liqReservesAmount_contains?: InputMaybe>; + liqReservesAmount_contains_nocase?: InputMaybe>; + liqReservesAmount_not?: InputMaybe>; + liqReservesAmount_not_contains?: InputMaybe>; + liqReservesAmount_not_contains_nocase?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; + swapAmountIn?: InputMaybe; + swapAmountIn_gt?: InputMaybe; + swapAmountIn_gte?: InputMaybe; + swapAmountIn_in?: InputMaybe>; + swapAmountIn_lt?: InputMaybe; + swapAmountIn_lte?: InputMaybe; + swapAmountIn_not?: InputMaybe; + swapAmountIn_not_in?: InputMaybe>; + swapAmountOut?: InputMaybe; + swapAmountOut_gt?: InputMaybe; + swapAmountOut_gte?: InputMaybe; + swapAmountOut_in?: InputMaybe>; + swapAmountOut_lt?: InputMaybe; + swapAmountOut_lte?: InputMaybe; + swapAmountOut_not?: InputMaybe; + swapAmountOut_not_in?: InputMaybe>; + swapFromToken?: InputMaybe; + swapFromToken_?: InputMaybe; + swapFromToken_contains?: InputMaybe; + swapFromToken_contains_nocase?: InputMaybe; + swapFromToken_ends_with?: InputMaybe; + swapFromToken_ends_with_nocase?: InputMaybe; + swapFromToken_gt?: InputMaybe; + swapFromToken_gte?: InputMaybe; + swapFromToken_in?: InputMaybe>; + swapFromToken_lt?: InputMaybe; + swapFromToken_lte?: InputMaybe; + swapFromToken_not?: InputMaybe; + swapFromToken_not_contains?: InputMaybe; + swapFromToken_not_contains_nocase?: InputMaybe; + swapFromToken_not_ends_with?: InputMaybe; + swapFromToken_not_ends_with_nocase?: InputMaybe; + swapFromToken_not_in?: InputMaybe>; + swapFromToken_not_starts_with?: InputMaybe; + swapFromToken_not_starts_with_nocase?: InputMaybe; + swapFromToken_starts_with?: InputMaybe; + swapFromToken_starts_with_nocase?: InputMaybe; + swapToToken?: InputMaybe; + swapToToken_?: InputMaybe; + swapToToken_contains?: InputMaybe; + swapToToken_contains_nocase?: InputMaybe; + swapToToken_ends_with?: InputMaybe; + swapToToken_ends_with_nocase?: InputMaybe; + swapToToken_gt?: InputMaybe; + swapToToken_gte?: InputMaybe; + swapToToken_in?: InputMaybe>; + swapToToken_lt?: InputMaybe; + swapToToken_lte?: InputMaybe; + swapToToken_not?: InputMaybe; + swapToToken_not_contains?: InputMaybe; + swapToToken_not_contains_nocase?: InputMaybe; + swapToToken_not_ends_with?: InputMaybe; + swapToToken_not_ends_with_nocase?: InputMaybe; + swapToToken_not_in?: InputMaybe>; + swapToToken_not_starts_with?: InputMaybe; + swapToToken_not_starts_with_nocase?: InputMaybe; + swapToToken_starts_with?: InputMaybe; + swapToToken_starts_with_nocase?: InputMaybe; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + tradeType?: InputMaybe; + tradeType_in?: InputMaybe>; + tradeType_not?: InputMaybe; + tradeType_not_in?: InputMaybe>; + tradeVolumeReserves?: InputMaybe>; + tradeVolumeReservesUSD?: InputMaybe>; + tradeVolumeReservesUSD_contains?: InputMaybe>; + tradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + tradeVolumeReservesUSD_not?: InputMaybe>; + tradeVolumeReservesUSD_not_contains?: InputMaybe>; + tradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + tradeVolumeReserves_contains?: InputMaybe>; + tradeVolumeReserves_contains_nocase?: InputMaybe>; + tradeVolumeReserves_not?: InputMaybe>; + tradeVolumeReserves_not_contains?: InputMaybe>; + tradeVolumeReserves_not_contains_nocase?: InputMaybe>; + tradeVolumeUSD?: InputMaybe; + tradeVolumeUSD_gt?: InputMaybe; + tradeVolumeUSD_gte?: InputMaybe; + tradeVolumeUSD_in?: InputMaybe>; + tradeVolumeUSD_lt?: InputMaybe; + tradeVolumeUSD_lte?: InputMaybe; + tradeVolumeUSD_not?: InputMaybe; + tradeVolumeUSD_not_in?: InputMaybe>; + transferVolumeReserves?: InputMaybe>; + transferVolumeReservesUSD?: InputMaybe>; + transferVolumeReservesUSD_contains?: InputMaybe>; + transferVolumeReservesUSD_contains_nocase?: InputMaybe>; + transferVolumeReservesUSD_not?: InputMaybe>; + transferVolumeReservesUSD_not_contains?: InputMaybe>; + transferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + transferVolumeReserves_contains?: InputMaybe>; + transferVolumeReserves_contains_nocase?: InputMaybe>; + transferVolumeReserves_not?: InputMaybe>; + transferVolumeReserves_not_contains?: InputMaybe>; + transferVolumeReserves_not_contains_nocase?: InputMaybe>; + transferVolumeUSD?: InputMaybe; + transferVolumeUSD_gt?: InputMaybe; + transferVolumeUSD_gte?: InputMaybe; + transferVolumeUSD_in?: InputMaybe>; + transferVolumeUSD_lt?: InputMaybe; + transferVolumeUSD_lte?: InputMaybe; + transferVolumeUSD_not?: InputMaybe; + transferVolumeUSD_not_in?: InputMaybe>; + well?: InputMaybe; + well_?: InputMaybe; + well_contains?: InputMaybe; + well_contains_nocase?: InputMaybe; + well_ends_with?: InputMaybe; + well_ends_with_nocase?: InputMaybe; + well_gt?: InputMaybe; + well_gte?: InputMaybe; + well_in?: InputMaybe>; + well_lt?: InputMaybe; + well_lte?: InputMaybe; + well_not?: InputMaybe; + well_not_contains?: InputMaybe; + well_not_contains_nocase?: InputMaybe; + well_not_ends_with?: InputMaybe; + well_not_ends_with_nocase?: InputMaybe; + well_not_in?: InputMaybe>; + well_not_starts_with?: InputMaybe; + well_not_starts_with_nocase?: InputMaybe; + well_starts_with?: InputMaybe; + well_starts_with_nocase?: InputMaybe; +}; + +export enum Trade_OrderBy { + Account = 'account', + AccountId = 'account__id', + AfterReserves = 'afterReserves', + AfterTokenRates = 'afterTokenRates', + BeforeReserves = 'beforeReserves', + BeforeTokenRates = 'beforeTokenRates', + BiTradeVolumeReserves = 'biTradeVolumeReserves', + BlockNumber = 'blockNumber', + Hash = 'hash', + Id = 'id', + IsConvert = 'isConvert', + LiqLpTokenAmount = 'liqLpTokenAmount', + LiqReservesAmount = 'liqReservesAmount', + LogIndex = 'logIndex', + SwapAmountIn = 'swapAmountIn', + SwapAmountOut = 'swapAmountOut', + SwapFromToken = 'swapFromToken', + SwapFromTokenDecimals = 'swapFromToken__decimals', + SwapFromTokenId = 'swapFromToken__id', + SwapFromTokenLastPriceBlockNumber = 'swapFromToken__lastPriceBlockNumber', + SwapFromTokenLastPriceUsd = 'swapFromToken__lastPriceUSD', + SwapFromTokenName = 'swapFromToken__name', + SwapFromTokenSymbol = 'swapFromToken__symbol', + SwapToToken = 'swapToToken', + SwapToTokenDecimals = 'swapToToken__decimals', + SwapToTokenId = 'swapToToken__id', + SwapToTokenLastPriceBlockNumber = 'swapToToken__lastPriceBlockNumber', + SwapToTokenLastPriceUsd = 'swapToToken__lastPriceUSD', + SwapToTokenName = 'swapToToken__name', + SwapToTokenSymbol = 'swapToToken__symbol', + Timestamp = 'timestamp', + TradeType = 'tradeType', + TradeVolumeReserves = 'tradeVolumeReserves', + TradeVolumeReservesUsd = 'tradeVolumeReservesUSD', + TradeVolumeUsd = 'tradeVolumeUSD', + TransferVolumeReserves = 'transferVolumeReserves', + TransferVolumeReservesUsd = 'transferVolumeReservesUSD', + TransferVolumeUsd = 'transferVolumeUSD', + Well = 'well', + WellBoredWell = 'well__boredWell', + WellConvertVolumeUsd = 'well__convertVolumeUSD', + WellCreatedTimestamp = 'well__createdTimestamp', + WellCumulativeTradeVolumeUsd = 'well__cumulativeTradeVolumeUSD', + WellCumulativeTransferVolumeUsd = 'well__cumulativeTransferVolumeUSD', + WellId = 'well__id', + WellIsBeanstalk = 'well__isBeanstalk', + WellLastDailySnapshotDay = 'well__lastDailySnapshotDay', + WellLastHourlySnapshotHour = 'well__lastHourlySnapshotHour', + WellLastUpdateBlockNumber = 'well__lastUpdateBlockNumber', + WellLastUpdateTimestamp = 'well__lastUpdateTimestamp', + WellLpTokenSupply = 'well__lpTokenSupply', + WellName = 'well__name', + WellRollingDailyConvertVolumeUsd = 'well__rollingDailyConvertVolumeUSD', + WellRollingDailyTradeVolumeUsd = 'well__rollingDailyTradeVolumeUSD', + WellRollingDailyTransferVolumeUsd = 'well__rollingDailyTransferVolumeUSD', + WellRollingWeeklyConvertVolumeUsd = 'well__rollingWeeklyConvertVolumeUSD', + WellRollingWeeklyTradeVolumeUsd = 'well__rollingWeeklyTradeVolumeUSD', + WellRollingWeeklyTransferVolumeUsd = 'well__rollingWeeklyTransferVolumeUSD', + WellSymbol = 'well__symbol', + WellTotalLiquidityUsd = 'well__totalLiquidityUSD', + WellWellFunctionData = 'well__wellFunctionData' +} + +export type Version = { + __typename?: 'Version'; + /** Which blockchain is being indexed, i.e. 'ethereum', 'arbitrum', etc. */ + chain: Scalars['String']['output']; + /** = 'subgraph' */ + id: Scalars['ID']['output']; + /** Address of Beanstalk protocol */ + protocolAddress: Scalars['Bytes']['output']; + /** = 'beanstalk' */ + subgraphName: Scalars['String']['output']; + /** Verison number of the subgraph */ + versionNumber: Scalars['String']['output']; +}; + +export type Version_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + chain?: InputMaybe; + chain_contains?: InputMaybe; + chain_contains_nocase?: InputMaybe; + chain_ends_with?: InputMaybe; + chain_ends_with_nocase?: InputMaybe; + chain_gt?: InputMaybe; + chain_gte?: InputMaybe; + chain_in?: InputMaybe>; + chain_lt?: InputMaybe; + chain_lte?: InputMaybe; + chain_not?: InputMaybe; + chain_not_contains?: InputMaybe; + chain_not_contains_nocase?: InputMaybe; + chain_not_ends_with?: InputMaybe; + chain_not_ends_with_nocase?: InputMaybe; + chain_not_in?: InputMaybe>; + chain_not_starts_with?: InputMaybe; + chain_not_starts_with_nocase?: InputMaybe; + chain_starts_with?: InputMaybe; + chain_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + protocolAddress?: InputMaybe; + protocolAddress_contains?: InputMaybe; + protocolAddress_gt?: InputMaybe; + protocolAddress_gte?: InputMaybe; + protocolAddress_in?: InputMaybe>; + protocolAddress_lt?: InputMaybe; + protocolAddress_lte?: InputMaybe; + protocolAddress_not?: InputMaybe; + protocolAddress_not_contains?: InputMaybe; + protocolAddress_not_in?: InputMaybe>; + subgraphName?: InputMaybe; + subgraphName_contains?: InputMaybe; + subgraphName_contains_nocase?: InputMaybe; + subgraphName_ends_with?: InputMaybe; + subgraphName_ends_with_nocase?: InputMaybe; + subgraphName_gt?: InputMaybe; + subgraphName_gte?: InputMaybe; + subgraphName_in?: InputMaybe>; + subgraphName_lt?: InputMaybe; + subgraphName_lte?: InputMaybe; + subgraphName_not?: InputMaybe; + subgraphName_not_contains?: InputMaybe; + subgraphName_not_contains_nocase?: InputMaybe; + subgraphName_not_ends_with?: InputMaybe; + subgraphName_not_ends_with_nocase?: InputMaybe; + subgraphName_not_in?: InputMaybe>; + subgraphName_not_starts_with?: InputMaybe; + subgraphName_not_starts_with_nocase?: InputMaybe; + subgraphName_starts_with?: InputMaybe; + subgraphName_starts_with_nocase?: InputMaybe; + versionNumber?: InputMaybe; + versionNumber_contains?: InputMaybe; + versionNumber_contains_nocase?: InputMaybe; + versionNumber_ends_with?: InputMaybe; + versionNumber_ends_with_nocase?: InputMaybe; + versionNumber_gt?: InputMaybe; + versionNumber_gte?: InputMaybe; + versionNumber_in?: InputMaybe>; + versionNumber_lt?: InputMaybe; + versionNumber_lte?: InputMaybe; + versionNumber_not?: InputMaybe; + versionNumber_not_contains?: InputMaybe; + versionNumber_not_contains_nocase?: InputMaybe; + versionNumber_not_ends_with?: InputMaybe; + versionNumber_not_ends_with_nocase?: InputMaybe; + versionNumber_not_in?: InputMaybe>; + versionNumber_not_starts_with?: InputMaybe; + versionNumber_not_starts_with_nocase?: InputMaybe; + versionNumber_starts_with?: InputMaybe; + versionNumber_starts_with_nocase?: InputMaybe; +}; + +export enum Version_OrderBy { + Chain = 'chain', + Id = 'id', + ProtocolAddress = 'protocolAddress', + SubgraphName = 'subgraphName', + VersionNumber = 'versionNumber' +} + +export type Well = { + __typename?: 'Well'; + /** The aquifer used to bore this well */ + aquifer: Aquifer; + /** The bored well address. Differs from `id` in the case of an Upgradeable well. */ + boredWell: Scalars['Bytes']['output']; + /** All Beanstalk convert trading volume occurring in this Well, by each token, in native amount. A subset of cumulativeTradeVolumeReserves */ + convertVolumeReserves: Array; + /** All Beanstalk convert trading volume occurring in this Well, by each token, in USD. A subset of cumulativeTradeVolumeReservesUSD */ + convertVolumeReservesUSD: Array; + /** All Beanstalk convert trading volume occurring in this Well. A subset of cumulativeTradeVolumeUSD */ + convertVolumeUSD: Scalars['BigDecimal']['output']; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All trade volume occurred for a specific token, in native amount. This includes absolute tokens on both sides of the trade unlike cumulativeTradeVolumeReserves. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeBiTradeVolumeReserves: Array; + /** All trade volume occurred for a specific token, in native amount. Volume for an individual token is defined as a purchase of that token. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTradeVolumeReserves: Array; + /** All trade volume occurred for a specific token, in USD. Volume for an individual token is defined as a purchase of that token. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTradeVolumeReservesUSD: Array; + /** All trade volume occurred in this well, in USD. This includes any net trading activity as a result of add/remove liquidity. Should be equal to the sum of all entries in cumulativeTradeVolumeReservesUSD */ + cumulativeTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All transfer volume occurred for a specific token, in native amount. This includes the full amount of tokens transferred in add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTransferVolumeReserves: Array; + /** All transfer volume occurred for a specific token, in USD. This includes the full value of tokens transferred in add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTransferVolumeReservesUSD: Array; + /** All transfer volume occurred in this well, in USD. This includes the full value of tokens transferred in add/remove liquidity. Should be equal to the sum of all entries in cumulativeTransferVolumeReservesUSD */ + cumulativeTransferVolumeUSD: Scalars['BigDecimal']['output']; + dailySnapshots: Array; + hourlySnapshots: Array; + /** Well address. For upgradeable wells, this is the proxy address. */ + id: Scalars['Bytes']['output']; + /** The well implementation used to deploy this well */ + implementation: Implementation; + /** True if this is a Beanstalk well */ + isBeanstalk: Scalars['Boolean']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Hour when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotHour?: Maybe; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Total liquidity token supply for the well. */ + lpTokenSupply: Scalars['BigInt']['output']; + /** Name of liquidity well (e.g. Curve.fi DAI/USDC/USDT) */ + name?: Maybe; + /** Data to be passed to each pump */ + pumpData: Array; + /** Pumps associated with this well */ + pumps: Array; + /** Amount of each token in the well. The ordering should be the same as the well's `tokens` field. */ + reserves: Array; + /** USD value of each token in the well. The ordering should be the same as the well's `tokens` field. */ + reservesUSD: Array; + /** Rolling 24h of cumulativeBiTradeVolumeReserves */ + rollingDailyBiTradeVolumeReserves: Array; + /** Rolling 24h of convertVolumeReserves */ + rollingDailyConvertVolumeReserves: Array; + /** Rolling 24h of convertVolumeReservesUSD */ + rollingDailyConvertVolumeReservesUSD: Array; + /** Rolling 24h of convertVolumeUSD */ + rollingDailyConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeTradeVolumeReserves */ + rollingDailyTradeVolumeReserves: Array; + /** Rolling 24h of cumulativeTradeVolumeReservesUSD */ + rollingDailyTradeVolumeReservesUSD: Array; + /** Rolling 24h of cumulativeTradeVolumeUSD */ + rollingDailyTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 24h of cumulativeTransferVolumeReserves */ + rollingDailyTransferVolumeReserves: Array; + /** Rolling 24h of cumulativeTransferVolumeReservesUSD */ + rollingDailyTransferVolumeReservesUSD: Array; + /** Rolling 24h of cumulativeTransferVolumeUSD */ + rollingDailyTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeBiTradeVolumeReserves */ + rollingWeeklyBiTradeVolumeReserves: Array; + /** Rolling 7d of convertVolumeReserves */ + rollingWeeklyConvertVolumeReserves: Array; + /** Rolling 7d of convertVolumeReservesUSD */ + rollingWeeklyConvertVolumeReservesUSD: Array; + /** Rolling 7d of convertVolumeUSD */ + rollingWeeklyConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeTradeVolumeReserves */ + rollingWeeklyTradeVolumeReserves: Array; + /** Rolling 7d of cumulativeTradeVolumeReservesUSD */ + rollingWeeklyTradeVolumeReservesUSD: Array; + /** Rolling 7d of cumulativeTradeVolumeUSD */ + rollingWeeklyTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Rolling 7d of cumulativeTransferVolumeReserves */ + rollingWeeklyTransferVolumeReserves: Array; + /** Rolling 7d of cumulativeTransferVolumeReservesUSD */ + rollingWeeklyTransferVolumeReservesUSD: Array; + /** Rolling 7d of cumulativeTransferVolumeUSD */ + rollingWeeklyTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Symbol of liquidity well (e.g. 3CRV) */ + symbol?: Maybe; + /** The order of the tokens in the Well. The above `tokens` association will be sorted by id on any retrieval. */ + tokenOrder: Array; + /** The current amount of each token needed to exchange for one of the other token, with token decimal precision applied. Resulting decimal value may have more digits than is possible to represent tokens on chain. This is necessary to calculate proper prices for highly expensive tokens like btc. */ + tokenRates: Array; + /** Tokens that need to be deposited to take a position in protocol. e.g. WETH and USDC to deposit into the WETH-USDC well. Array to account for multi-asset wells like Curve and Balancer */ + tokens: Array; + /** The sum of all active and non-active liquidity in USD for this well. */ + totalLiquidityUSD: Scalars['BigDecimal']['output']; + /** All trade (add/remove liquidity, swaps) events occurred in this well */ + trades: Array; + /** History of upgrades (for upgradeable wells). All wells will have at least one entry here. */ + upgradeHistory: Array; + /** Pricing function contract used with this well */ + wellFunction: WellFunction; + /** Data to be passed to the well function */ + wellFunctionData: Scalars['Bytes']['output']; +}; + + +export type WellDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WellHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WellPumpsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WellTokensArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WellTradesArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WellUpgradeHistoryArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type WellDailySnapshot = { + __typename?: 'WellDailySnapshot'; + /** All Beanstalk convert trading volume occurring in this Well, by each token, in native amount. A subset of cumulativeTradeVolumeReserves */ + convertVolumeReserves: Array; + /** All Beanstalk convert trading volume occurring in this Well, by each token, in USD. A subset of cumulativeTradeVolumeReservesUSD */ + convertVolumeReservesUSD: Array; + /** All Beanstalk convert trading volume occurring in this Well. A subset of cumulativeTradeVolumeUSD */ + convertVolumeUSD: Scalars['BigDecimal']['output']; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All trade volume occurred for a specific token, in native amount. This includes absolute tokens on both sides of the trade unlike cumulativeTradeVolumeReserves. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeBiTradeVolumeReserves: Array; + /** All trade volume occurred for a specific token, in native amount. Volume for an individual token is defined as a purchase of that token. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTradeVolumeReserves: Array; + /** All trade volume occurred for a specific token, in USD. Volume for an individual token is defined as a purchase of that token. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTradeVolumeReservesUSD: Array; + /** All trade volume occurred in this well, in USD. This includes any net trading activity as a result of add/remove liquidity. Should be equal to the sum of all entries in cumulativeTradeVolumeReservesUSD */ + cumulativeTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All transfer volume occurred for a specific token, in native amount. This includes the full amount of tokens transferred in add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTransferVolumeReserves: Array; + /** All transfer volume occurred for a specific token, in USD. This includes the full value of tokens transferred in add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTransferVolumeReservesUSD: Array; + /** All transfer volume occurred in this well, in USD. This includes the full value of tokens transferred in add/remove liquidity. Should be equal to the sum of all entries in cumulativeTransferVolumeReservesUSD */ + cumulativeTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Unix day */ + day: Scalars['Int']['output']; + /** Delta of cumulativeBiTradeVolumeReserves */ + deltaBiTradeVolumeReserves: Array; + /** Delta of convertVolumeReserves */ + deltaConvertVolumeReserves: Array; + /** Delta of convertVolumeReservesUSD */ + deltaConvertVolumeReservesUSD: Array; + /** Delta of convertVolumeUSD */ + deltaConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of totalLiquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Delta of lpTokenSupply */ + deltaLpTokenSupply: Scalars['BigInt']['output']; + /** Delta of tokenRates */ + deltaTokenRates: Array; + /** Delta of cumulativeTradeVolumeReserves */ + deltaTradeVolumeReserves: Array; + /** Delta of cumulativeTradeVolumeReservesUSD */ + deltaTradeVolumeReservesUSD: Array; + /** Delta of cumulativeTradeVolumeUSD */ + deltaTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeTransferVolumeReserves */ + deltaTransferVolumeReserves: Array; + /** Delta of cumulativeTransferVolumeReservesUSD */ + deltaTransferVolumeReservesUSD: Array; + /** Delta of cumulativeTransferVolumeUSD */ + deltaTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** {Smart contract address of the well}-{Unix day} */ + id: Scalars['ID']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Total liquidity token supply for the well. */ + lpTokenSupply: Scalars['BigInt']['output']; + /** Beanstalk season (if this is a Beanstalk Well) */ + season?: Maybe; + /** The current amount of each token needed to exchange for one of the other token, with token decimal precision applied. Resulting decimal value may have more digits than is possible to represent tokens on chain. This is necessary to calculate proper prices for highly expensive tokens like btc. */ + tokenRates: Array; + /** The sum of all active and non-active liquidity in USD for this well. */ + totalLiquidityUSD: Scalars['BigDecimal']['output']; + /** The well this snapshot belongs to */ + well: Well; +}; + +export type WellDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + convertVolumeReserves?: InputMaybe>; + convertVolumeReservesUSD?: InputMaybe>; + convertVolumeReservesUSD_contains?: InputMaybe>; + convertVolumeReservesUSD_contains_nocase?: InputMaybe>; + convertVolumeReservesUSD_not?: InputMaybe>; + convertVolumeReservesUSD_not_contains?: InputMaybe>; + convertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + convertVolumeReserves_contains?: InputMaybe>; + convertVolumeReserves_contains_nocase?: InputMaybe>; + convertVolumeReserves_not?: InputMaybe>; + convertVolumeReserves_not_contains?: InputMaybe>; + convertVolumeReserves_not_contains_nocase?: InputMaybe>; + convertVolumeUSD?: InputMaybe; + convertVolumeUSD_gt?: InputMaybe; + convertVolumeUSD_gte?: InputMaybe; + convertVolumeUSD_in?: InputMaybe>; + convertVolumeUSD_lt?: InputMaybe; + convertVolumeUSD_lte?: InputMaybe; + convertVolumeUSD_not?: InputMaybe; + convertVolumeUSD_not_in?: InputMaybe>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + cumulativeBiTradeVolumeReserves?: InputMaybe>; + cumulativeBiTradeVolumeReserves_contains?: InputMaybe>; + cumulativeBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not_contains?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves?: InputMaybe>; + cumulativeTradeVolumeReservesUSD?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_contains?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not_contains?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves_contains?: InputMaybe>; + cumulativeTradeVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves_not?: InputMaybe>; + cumulativeTradeVolumeReserves_not_contains?: InputMaybe>; + cumulativeTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeUSD?: InputMaybe; + cumulativeTradeVolumeUSD_gt?: InputMaybe; + cumulativeTradeVolumeUSD_gte?: InputMaybe; + cumulativeTradeVolumeUSD_in?: InputMaybe>; + cumulativeTradeVolumeUSD_lt?: InputMaybe; + cumulativeTradeVolumeUSD_lte?: InputMaybe; + cumulativeTradeVolumeUSD_not?: InputMaybe; + cumulativeTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeTransferVolumeReserves?: InputMaybe>; + cumulativeTransferVolumeReservesUSD?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_contains?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not_contains?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReserves_contains?: InputMaybe>; + cumulativeTransferVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReserves_not?: InputMaybe>; + cumulativeTransferVolumeReserves_not_contains?: InputMaybe>; + cumulativeTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeUSD?: InputMaybe; + cumulativeTransferVolumeUSD_gt?: InputMaybe; + cumulativeTransferVolumeUSD_gte?: InputMaybe; + cumulativeTransferVolumeUSD_in?: InputMaybe>; + cumulativeTransferVolumeUSD_lt?: InputMaybe; + cumulativeTransferVolumeUSD_lte?: InputMaybe; + cumulativeTransferVolumeUSD_not?: InputMaybe; + cumulativeTransferVolumeUSD_not_in?: InputMaybe>; + day?: InputMaybe; + day_gt?: InputMaybe; + day_gte?: InputMaybe; + day_in?: InputMaybe>; + day_lt?: InputMaybe; + day_lte?: InputMaybe; + day_not?: InputMaybe; + day_not_in?: InputMaybe>; + deltaBiTradeVolumeReserves?: InputMaybe>; + deltaBiTradeVolumeReserves_contains?: InputMaybe>; + deltaBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + deltaBiTradeVolumeReserves_not?: InputMaybe>; + deltaBiTradeVolumeReserves_not_contains?: InputMaybe>; + deltaBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaConvertVolumeReserves?: InputMaybe>; + deltaConvertVolumeReservesUSD?: InputMaybe>; + deltaConvertVolumeReservesUSD_contains?: InputMaybe>; + deltaConvertVolumeReservesUSD_contains_nocase?: InputMaybe>; + deltaConvertVolumeReservesUSD_not?: InputMaybe>; + deltaConvertVolumeReservesUSD_not_contains?: InputMaybe>; + deltaConvertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + deltaConvertVolumeReserves_contains?: InputMaybe>; + deltaConvertVolumeReserves_contains_nocase?: InputMaybe>; + deltaConvertVolumeReserves_not?: InputMaybe>; + deltaConvertVolumeReserves_not_contains?: InputMaybe>; + deltaConvertVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaConvertVolumeUSD?: InputMaybe; + deltaConvertVolumeUSD_gt?: InputMaybe; + deltaConvertVolumeUSD_gte?: InputMaybe; + deltaConvertVolumeUSD_in?: InputMaybe>; + deltaConvertVolumeUSD_lt?: InputMaybe; + deltaConvertVolumeUSD_lte?: InputMaybe; + deltaConvertVolumeUSD_not?: InputMaybe; + deltaConvertVolumeUSD_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaLpTokenSupply?: InputMaybe; + deltaLpTokenSupply_gt?: InputMaybe; + deltaLpTokenSupply_gte?: InputMaybe; + deltaLpTokenSupply_in?: InputMaybe>; + deltaLpTokenSupply_lt?: InputMaybe; + deltaLpTokenSupply_lte?: InputMaybe; + deltaLpTokenSupply_not?: InputMaybe; + deltaLpTokenSupply_not_in?: InputMaybe>; + deltaTokenRates?: InputMaybe>; + deltaTokenRates_contains?: InputMaybe>; + deltaTokenRates_contains_nocase?: InputMaybe>; + deltaTokenRates_not?: InputMaybe>; + deltaTokenRates_not_contains?: InputMaybe>; + deltaTokenRates_not_contains_nocase?: InputMaybe>; + deltaTradeVolumeReserves?: InputMaybe>; + deltaTradeVolumeReservesUSD?: InputMaybe>; + deltaTradeVolumeReservesUSD_contains?: InputMaybe>; + deltaTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + deltaTradeVolumeReservesUSD_not?: InputMaybe>; + deltaTradeVolumeReservesUSD_not_contains?: InputMaybe>; + deltaTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + deltaTradeVolumeReserves_contains?: InputMaybe>; + deltaTradeVolumeReserves_contains_nocase?: InputMaybe>; + deltaTradeVolumeReserves_not?: InputMaybe>; + deltaTradeVolumeReserves_not_contains?: InputMaybe>; + deltaTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaTradeVolumeUSD?: InputMaybe; + deltaTradeVolumeUSD_gt?: InputMaybe; + deltaTradeVolumeUSD_gte?: InputMaybe; + deltaTradeVolumeUSD_in?: InputMaybe>; + deltaTradeVolumeUSD_lt?: InputMaybe; + deltaTradeVolumeUSD_lte?: InputMaybe; + deltaTradeVolumeUSD_not?: InputMaybe; + deltaTradeVolumeUSD_not_in?: InputMaybe>; + deltaTransferVolumeReserves?: InputMaybe>; + deltaTransferVolumeReservesUSD?: InputMaybe>; + deltaTransferVolumeReservesUSD_contains?: InputMaybe>; + deltaTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + deltaTransferVolumeReservesUSD_not?: InputMaybe>; + deltaTransferVolumeReservesUSD_not_contains?: InputMaybe>; + deltaTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + deltaTransferVolumeReserves_contains?: InputMaybe>; + deltaTransferVolumeReserves_contains_nocase?: InputMaybe>; + deltaTransferVolumeReserves_not?: InputMaybe>; + deltaTransferVolumeReserves_not_contains?: InputMaybe>; + deltaTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaTransferVolumeUSD?: InputMaybe; + deltaTransferVolumeUSD_gt?: InputMaybe; + deltaTransferVolumeUSD_gte?: InputMaybe; + deltaTransferVolumeUSD_in?: InputMaybe>; + deltaTransferVolumeUSD_lt?: InputMaybe; + deltaTransferVolumeUSD_lte?: InputMaybe; + deltaTransferVolumeUSD_not?: InputMaybe; + deltaTransferVolumeUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + lpTokenSupply?: InputMaybe; + lpTokenSupply_gt?: InputMaybe; + lpTokenSupply_gte?: InputMaybe; + lpTokenSupply_in?: InputMaybe>; + lpTokenSupply_lt?: InputMaybe; + lpTokenSupply_lte?: InputMaybe; + lpTokenSupply_not?: InputMaybe; + lpTokenSupply_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + tokenRates?: InputMaybe>; + tokenRates_contains?: InputMaybe>; + tokenRates_contains_nocase?: InputMaybe>; + tokenRates_not?: InputMaybe>; + tokenRates_not_contains?: InputMaybe>; + tokenRates_not_contains_nocase?: InputMaybe>; + totalLiquidityUSD?: InputMaybe; + totalLiquidityUSD_gt?: InputMaybe; + totalLiquidityUSD_gte?: InputMaybe; + totalLiquidityUSD_in?: InputMaybe>; + totalLiquidityUSD_lt?: InputMaybe; + totalLiquidityUSD_lte?: InputMaybe; + totalLiquidityUSD_not?: InputMaybe; + totalLiquidityUSD_not_in?: InputMaybe>; + well?: InputMaybe; + well_?: InputMaybe; + well_contains?: InputMaybe; + well_contains_nocase?: InputMaybe; + well_ends_with?: InputMaybe; + well_ends_with_nocase?: InputMaybe; + well_gt?: InputMaybe; + well_gte?: InputMaybe; + well_in?: InputMaybe>; + well_lt?: InputMaybe; + well_lte?: InputMaybe; + well_not?: InputMaybe; + well_not_contains?: InputMaybe; + well_not_contains_nocase?: InputMaybe; + well_not_ends_with?: InputMaybe; + well_not_ends_with_nocase?: InputMaybe; + well_not_in?: InputMaybe>; + well_not_starts_with?: InputMaybe; + well_not_starts_with_nocase?: InputMaybe; + well_starts_with?: InputMaybe; + well_starts_with_nocase?: InputMaybe; +}; + +export enum WellDailySnapshot_OrderBy { + ConvertVolumeReserves = 'convertVolumeReserves', + ConvertVolumeReservesUsd = 'convertVolumeReservesUSD', + ConvertVolumeUsd = 'convertVolumeUSD', + CreatedTimestamp = 'createdTimestamp', + CumulativeBiTradeVolumeReserves = 'cumulativeBiTradeVolumeReserves', + CumulativeTradeVolumeReserves = 'cumulativeTradeVolumeReserves', + CumulativeTradeVolumeReservesUsd = 'cumulativeTradeVolumeReservesUSD', + CumulativeTradeVolumeUsd = 'cumulativeTradeVolumeUSD', + CumulativeTransferVolumeReserves = 'cumulativeTransferVolumeReserves', + CumulativeTransferVolumeReservesUsd = 'cumulativeTransferVolumeReservesUSD', + CumulativeTransferVolumeUsd = 'cumulativeTransferVolumeUSD', + Day = 'day', + DeltaBiTradeVolumeReserves = 'deltaBiTradeVolumeReserves', + DeltaConvertVolumeReserves = 'deltaConvertVolumeReserves', + DeltaConvertVolumeReservesUsd = 'deltaConvertVolumeReservesUSD', + DeltaConvertVolumeUsd = 'deltaConvertVolumeUSD', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaLpTokenSupply = 'deltaLpTokenSupply', + DeltaTokenRates = 'deltaTokenRates', + DeltaTradeVolumeReserves = 'deltaTradeVolumeReserves', + DeltaTradeVolumeReservesUsd = 'deltaTradeVolumeReservesUSD', + DeltaTradeVolumeUsd = 'deltaTradeVolumeUSD', + DeltaTransferVolumeReserves = 'deltaTransferVolumeReserves', + DeltaTransferVolumeReservesUsd = 'deltaTransferVolumeReservesUSD', + DeltaTransferVolumeUsd = 'deltaTransferVolumeUSD', + Id = 'id', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LpTokenSupply = 'lpTokenSupply', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TokenRates = 'tokenRates', + TotalLiquidityUsd = 'totalLiquidityUSD', + Well = 'well', + WellBoredWell = 'well__boredWell', + WellConvertVolumeUsd = 'well__convertVolumeUSD', + WellCreatedTimestamp = 'well__createdTimestamp', + WellCumulativeTradeVolumeUsd = 'well__cumulativeTradeVolumeUSD', + WellCumulativeTransferVolumeUsd = 'well__cumulativeTransferVolumeUSD', + WellId = 'well__id', + WellIsBeanstalk = 'well__isBeanstalk', + WellLastDailySnapshotDay = 'well__lastDailySnapshotDay', + WellLastHourlySnapshotHour = 'well__lastHourlySnapshotHour', + WellLastUpdateBlockNumber = 'well__lastUpdateBlockNumber', + WellLastUpdateTimestamp = 'well__lastUpdateTimestamp', + WellLpTokenSupply = 'well__lpTokenSupply', + WellName = 'well__name', + WellRollingDailyConvertVolumeUsd = 'well__rollingDailyConvertVolumeUSD', + WellRollingDailyTradeVolumeUsd = 'well__rollingDailyTradeVolumeUSD', + WellRollingDailyTransferVolumeUsd = 'well__rollingDailyTransferVolumeUSD', + WellRollingWeeklyConvertVolumeUsd = 'well__rollingWeeklyConvertVolumeUSD', + WellRollingWeeklyTradeVolumeUsd = 'well__rollingWeeklyTradeVolumeUSD', + WellRollingWeeklyTransferVolumeUsd = 'well__rollingWeeklyTransferVolumeUSD', + WellSymbol = 'well__symbol', + WellTotalLiquidityUsd = 'well__totalLiquidityUSD', + WellWellFunctionData = 'well__wellFunctionData' +} + +export type WellFunction = { + __typename?: 'WellFunction'; + /** Well Function address */ + id: Scalars['Bytes']['output']; + /** Wells associated with this well function */ + wells: Array; +}; + + +export type WellFunctionWellsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type WellFunction_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + wells_?: InputMaybe; +}; + +export enum WellFunction_OrderBy { + Id = 'id', + Wells = 'wells' +} + +export type WellHourlySnapshot = { + __typename?: 'WellHourlySnapshot'; + /** All Beanstalk convert trading volume occurring in this Well, by each token, in native amount. A subset of cumulativeTradeVolumeReserves */ + convertVolumeReserves: Array; + /** All Beanstalk convert trading volume occurring in this Well, by each token, in USD. A subset of cumulativeTradeVolumeReservesUSD */ + convertVolumeReservesUSD: Array; + /** All Beanstalk convert trading volume occurring in this Well. A subset of cumulativeTradeVolumeUSD */ + convertVolumeUSD: Scalars['BigDecimal']['output']; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All trade volume occurred for a specific token, in native amount. This includes absolute tokens on both sides of the trade unlike cumulativeTradeVolumeReserves. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeBiTradeVolumeReserves: Array; + /** All trade volume occurred for a specific token, in native amount. Volume for an individual token is defined as a purchase of that token. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTradeVolumeReserves: Array; + /** All trade volume occurred for a specific token, in USD. Volume for an individual token is defined as a purchase of that token. This includes any net trading activity as a result of add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTradeVolumeReservesUSD: Array; + /** All trade volume occurred in this well, in USD. This includes any net trading activity as a result of add/remove liquidity. Should be equal to the sum of all entries in cumulativeTradeVolumeReservesUSD */ + cumulativeTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** All transfer volume occurred for a specific token, in native amount. This includes the full amount of tokens transferred in add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTransferVolumeReserves: Array; + /** All transfer volume occurred for a specific token, in USD. This includes the full value of tokens transferred in add/remove liquidity. The ordering should be the same as the well's `tokens` field. */ + cumulativeTransferVolumeReservesUSD: Array; + /** All transfer volume occurred in this well, in USD. This includes the full value of tokens transferred in add/remove liquidity. Should be equal to the sum of all entries in cumulativeTransferVolumeReservesUSD */ + cumulativeTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeBiTradeVolumeReserves */ + deltaBiTradeVolumeReserves: Array; + /** Delta of convertVolumeReserves */ + deltaConvertVolumeReserves: Array; + /** Delta of convertVolumeReservesUSD */ + deltaConvertVolumeReservesUSD: Array; + /** Delta of convertVolumeUSD */ + deltaConvertVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of totalLiquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Delta of lpTokenSupply */ + deltaLpTokenSupply: Scalars['BigInt']['output']; + /** Delta of tokenRates */ + deltaTokenRates: Array; + /** Delta of cumulativeTradeVolumeReserves */ + deltaTradeVolumeReserves: Array; + /** Delta of cumulativeTradeVolumeReservesUSD */ + deltaTradeVolumeReservesUSD: Array; + /** Delta of cumulativeTradeVolumeUSD */ + deltaTradeVolumeUSD: Scalars['BigDecimal']['output']; + /** Delta of cumulativeTransferVolumeReserves */ + deltaTransferVolumeReserves: Array; + /** Delta of cumulativeTransferVolumeReservesUSD */ + deltaTransferVolumeReservesUSD: Array; + /** Delta of cumulativeTransferVolumeUSD */ + deltaTransferVolumeUSD: Scalars['BigDecimal']['output']; + /** Unix hour */ + hour: Scalars['Int']['output']; + /** {Smart contract address of the well}-{Unix hour} */ + id: Scalars['ID']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Total liquidity token supply for the well. */ + lpTokenSupply: Scalars['BigInt']['output']; + /** Beanstalk season (if this is a Beanstalk Well) */ + season?: Maybe; + /** The current amount of each token needed to exchange for one of the other token, with token decimal precision applied. Resulting decimal value may have more digits than is possible to represent tokens on chain. This is necessary to calculate proper prices for highly expensive tokens like btc. */ + tokenRates: Array; + /** The sum of all active and non-active liquidity in USD for this well. */ + totalLiquidityUSD: Scalars['BigDecimal']['output']; + /** The well this snapshot belongs to */ + well: Well; +}; + +export type WellHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + convertVolumeReserves?: InputMaybe>; + convertVolumeReservesUSD?: InputMaybe>; + convertVolumeReservesUSD_contains?: InputMaybe>; + convertVolumeReservesUSD_contains_nocase?: InputMaybe>; + convertVolumeReservesUSD_not?: InputMaybe>; + convertVolumeReservesUSD_not_contains?: InputMaybe>; + convertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + convertVolumeReserves_contains?: InputMaybe>; + convertVolumeReserves_contains_nocase?: InputMaybe>; + convertVolumeReserves_not?: InputMaybe>; + convertVolumeReserves_not_contains?: InputMaybe>; + convertVolumeReserves_not_contains_nocase?: InputMaybe>; + convertVolumeUSD?: InputMaybe; + convertVolumeUSD_gt?: InputMaybe; + convertVolumeUSD_gte?: InputMaybe; + convertVolumeUSD_in?: InputMaybe>; + convertVolumeUSD_lt?: InputMaybe; + convertVolumeUSD_lte?: InputMaybe; + convertVolumeUSD_not?: InputMaybe; + convertVolumeUSD_not_in?: InputMaybe>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + cumulativeBiTradeVolumeReserves?: InputMaybe>; + cumulativeBiTradeVolumeReserves_contains?: InputMaybe>; + cumulativeBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not_contains?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves?: InputMaybe>; + cumulativeTradeVolumeReservesUSD?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_contains?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not_contains?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves_contains?: InputMaybe>; + cumulativeTradeVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves_not?: InputMaybe>; + cumulativeTradeVolumeReserves_not_contains?: InputMaybe>; + cumulativeTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeUSD?: InputMaybe; + cumulativeTradeVolumeUSD_gt?: InputMaybe; + cumulativeTradeVolumeUSD_gte?: InputMaybe; + cumulativeTradeVolumeUSD_in?: InputMaybe>; + cumulativeTradeVolumeUSD_lt?: InputMaybe; + cumulativeTradeVolumeUSD_lte?: InputMaybe; + cumulativeTradeVolumeUSD_not?: InputMaybe; + cumulativeTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeTransferVolumeReserves?: InputMaybe>; + cumulativeTransferVolumeReservesUSD?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_contains?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not_contains?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReserves_contains?: InputMaybe>; + cumulativeTransferVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReserves_not?: InputMaybe>; + cumulativeTransferVolumeReserves_not_contains?: InputMaybe>; + cumulativeTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeUSD?: InputMaybe; + cumulativeTransferVolumeUSD_gt?: InputMaybe; + cumulativeTransferVolumeUSD_gte?: InputMaybe; + cumulativeTransferVolumeUSD_in?: InputMaybe>; + cumulativeTransferVolumeUSD_lt?: InputMaybe; + cumulativeTransferVolumeUSD_lte?: InputMaybe; + cumulativeTransferVolumeUSD_not?: InputMaybe; + cumulativeTransferVolumeUSD_not_in?: InputMaybe>; + deltaBiTradeVolumeReserves?: InputMaybe>; + deltaBiTradeVolumeReserves_contains?: InputMaybe>; + deltaBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + deltaBiTradeVolumeReserves_not?: InputMaybe>; + deltaBiTradeVolumeReserves_not_contains?: InputMaybe>; + deltaBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaConvertVolumeReserves?: InputMaybe>; + deltaConvertVolumeReservesUSD?: InputMaybe>; + deltaConvertVolumeReservesUSD_contains?: InputMaybe>; + deltaConvertVolumeReservesUSD_contains_nocase?: InputMaybe>; + deltaConvertVolumeReservesUSD_not?: InputMaybe>; + deltaConvertVolumeReservesUSD_not_contains?: InputMaybe>; + deltaConvertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + deltaConvertVolumeReserves_contains?: InputMaybe>; + deltaConvertVolumeReserves_contains_nocase?: InputMaybe>; + deltaConvertVolumeReserves_not?: InputMaybe>; + deltaConvertVolumeReserves_not_contains?: InputMaybe>; + deltaConvertVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaConvertVolumeUSD?: InputMaybe; + deltaConvertVolumeUSD_gt?: InputMaybe; + deltaConvertVolumeUSD_gte?: InputMaybe; + deltaConvertVolumeUSD_in?: InputMaybe>; + deltaConvertVolumeUSD_lt?: InputMaybe; + deltaConvertVolumeUSD_lte?: InputMaybe; + deltaConvertVolumeUSD_not?: InputMaybe; + deltaConvertVolumeUSD_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaLpTokenSupply?: InputMaybe; + deltaLpTokenSupply_gt?: InputMaybe; + deltaLpTokenSupply_gte?: InputMaybe; + deltaLpTokenSupply_in?: InputMaybe>; + deltaLpTokenSupply_lt?: InputMaybe; + deltaLpTokenSupply_lte?: InputMaybe; + deltaLpTokenSupply_not?: InputMaybe; + deltaLpTokenSupply_not_in?: InputMaybe>; + deltaTokenRates?: InputMaybe>; + deltaTokenRates_contains?: InputMaybe>; + deltaTokenRates_contains_nocase?: InputMaybe>; + deltaTokenRates_not?: InputMaybe>; + deltaTokenRates_not_contains?: InputMaybe>; + deltaTokenRates_not_contains_nocase?: InputMaybe>; + deltaTradeVolumeReserves?: InputMaybe>; + deltaTradeVolumeReservesUSD?: InputMaybe>; + deltaTradeVolumeReservesUSD_contains?: InputMaybe>; + deltaTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + deltaTradeVolumeReservesUSD_not?: InputMaybe>; + deltaTradeVolumeReservesUSD_not_contains?: InputMaybe>; + deltaTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + deltaTradeVolumeReserves_contains?: InputMaybe>; + deltaTradeVolumeReserves_contains_nocase?: InputMaybe>; + deltaTradeVolumeReserves_not?: InputMaybe>; + deltaTradeVolumeReserves_not_contains?: InputMaybe>; + deltaTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaTradeVolumeUSD?: InputMaybe; + deltaTradeVolumeUSD_gt?: InputMaybe; + deltaTradeVolumeUSD_gte?: InputMaybe; + deltaTradeVolumeUSD_in?: InputMaybe>; + deltaTradeVolumeUSD_lt?: InputMaybe; + deltaTradeVolumeUSD_lte?: InputMaybe; + deltaTradeVolumeUSD_not?: InputMaybe; + deltaTradeVolumeUSD_not_in?: InputMaybe>; + deltaTransferVolumeReserves?: InputMaybe>; + deltaTransferVolumeReservesUSD?: InputMaybe>; + deltaTransferVolumeReservesUSD_contains?: InputMaybe>; + deltaTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + deltaTransferVolumeReservesUSD_not?: InputMaybe>; + deltaTransferVolumeReservesUSD_not_contains?: InputMaybe>; + deltaTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + deltaTransferVolumeReserves_contains?: InputMaybe>; + deltaTransferVolumeReserves_contains_nocase?: InputMaybe>; + deltaTransferVolumeReserves_not?: InputMaybe>; + deltaTransferVolumeReserves_not_contains?: InputMaybe>; + deltaTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + deltaTransferVolumeUSD?: InputMaybe; + deltaTransferVolumeUSD_gt?: InputMaybe; + deltaTransferVolumeUSD_gte?: InputMaybe; + deltaTransferVolumeUSD_in?: InputMaybe>; + deltaTransferVolumeUSD_lt?: InputMaybe; + deltaTransferVolumeUSD_lte?: InputMaybe; + deltaTransferVolumeUSD_not?: InputMaybe; + deltaTransferVolumeUSD_not_in?: InputMaybe>; + hour?: InputMaybe; + hour_gt?: InputMaybe; + hour_gte?: InputMaybe; + hour_in?: InputMaybe>; + hour_lt?: InputMaybe; + hour_lte?: InputMaybe; + hour_not?: InputMaybe; + hour_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + lpTokenSupply?: InputMaybe; + lpTokenSupply_gt?: InputMaybe; + lpTokenSupply_gte?: InputMaybe; + lpTokenSupply_in?: InputMaybe>; + lpTokenSupply_lt?: InputMaybe; + lpTokenSupply_lte?: InputMaybe; + lpTokenSupply_not?: InputMaybe; + lpTokenSupply_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + tokenRates?: InputMaybe>; + tokenRates_contains?: InputMaybe>; + tokenRates_contains_nocase?: InputMaybe>; + tokenRates_not?: InputMaybe>; + tokenRates_not_contains?: InputMaybe>; + tokenRates_not_contains_nocase?: InputMaybe>; + totalLiquidityUSD?: InputMaybe; + totalLiquidityUSD_gt?: InputMaybe; + totalLiquidityUSD_gte?: InputMaybe; + totalLiquidityUSD_in?: InputMaybe>; + totalLiquidityUSD_lt?: InputMaybe; + totalLiquidityUSD_lte?: InputMaybe; + totalLiquidityUSD_not?: InputMaybe; + totalLiquidityUSD_not_in?: InputMaybe>; + well?: InputMaybe; + well_?: InputMaybe; + well_contains?: InputMaybe; + well_contains_nocase?: InputMaybe; + well_ends_with?: InputMaybe; + well_ends_with_nocase?: InputMaybe; + well_gt?: InputMaybe; + well_gte?: InputMaybe; + well_in?: InputMaybe>; + well_lt?: InputMaybe; + well_lte?: InputMaybe; + well_not?: InputMaybe; + well_not_contains?: InputMaybe; + well_not_contains_nocase?: InputMaybe; + well_not_ends_with?: InputMaybe; + well_not_ends_with_nocase?: InputMaybe; + well_not_in?: InputMaybe>; + well_not_starts_with?: InputMaybe; + well_not_starts_with_nocase?: InputMaybe; + well_starts_with?: InputMaybe; + well_starts_with_nocase?: InputMaybe; +}; + +export enum WellHourlySnapshot_OrderBy { + ConvertVolumeReserves = 'convertVolumeReserves', + ConvertVolumeReservesUsd = 'convertVolumeReservesUSD', + ConvertVolumeUsd = 'convertVolumeUSD', + CreatedTimestamp = 'createdTimestamp', + CumulativeBiTradeVolumeReserves = 'cumulativeBiTradeVolumeReserves', + CumulativeTradeVolumeReserves = 'cumulativeTradeVolumeReserves', + CumulativeTradeVolumeReservesUsd = 'cumulativeTradeVolumeReservesUSD', + CumulativeTradeVolumeUsd = 'cumulativeTradeVolumeUSD', + CumulativeTransferVolumeReserves = 'cumulativeTransferVolumeReserves', + CumulativeTransferVolumeReservesUsd = 'cumulativeTransferVolumeReservesUSD', + CumulativeTransferVolumeUsd = 'cumulativeTransferVolumeUSD', + DeltaBiTradeVolumeReserves = 'deltaBiTradeVolumeReserves', + DeltaConvertVolumeReserves = 'deltaConvertVolumeReserves', + DeltaConvertVolumeReservesUsd = 'deltaConvertVolumeReservesUSD', + DeltaConvertVolumeUsd = 'deltaConvertVolumeUSD', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaLpTokenSupply = 'deltaLpTokenSupply', + DeltaTokenRates = 'deltaTokenRates', + DeltaTradeVolumeReserves = 'deltaTradeVolumeReserves', + DeltaTradeVolumeReservesUsd = 'deltaTradeVolumeReservesUSD', + DeltaTradeVolumeUsd = 'deltaTradeVolumeUSD', + DeltaTransferVolumeReserves = 'deltaTransferVolumeReserves', + DeltaTransferVolumeReservesUsd = 'deltaTransferVolumeReservesUSD', + DeltaTransferVolumeUsd = 'deltaTransferVolumeUSD', + Hour = 'hour', + Id = 'id', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LpTokenSupply = 'lpTokenSupply', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TokenRates = 'tokenRates', + TotalLiquidityUsd = 'totalLiquidityUSD', + Well = 'well', + WellBoredWell = 'well__boredWell', + WellConvertVolumeUsd = 'well__convertVolumeUSD', + WellCreatedTimestamp = 'well__createdTimestamp', + WellCumulativeTradeVolumeUsd = 'well__cumulativeTradeVolumeUSD', + WellCumulativeTransferVolumeUsd = 'well__cumulativeTransferVolumeUSD', + WellId = 'well__id', + WellIsBeanstalk = 'well__isBeanstalk', + WellLastDailySnapshotDay = 'well__lastDailySnapshotDay', + WellLastHourlySnapshotHour = 'well__lastHourlySnapshotHour', + WellLastUpdateBlockNumber = 'well__lastUpdateBlockNumber', + WellLastUpdateTimestamp = 'well__lastUpdateTimestamp', + WellLpTokenSupply = 'well__lpTokenSupply', + WellName = 'well__name', + WellRollingDailyConvertVolumeUsd = 'well__rollingDailyConvertVolumeUSD', + WellRollingDailyTradeVolumeUsd = 'well__rollingDailyTradeVolumeUSD', + WellRollingDailyTransferVolumeUsd = 'well__rollingDailyTransferVolumeUSD', + WellRollingWeeklyConvertVolumeUsd = 'well__rollingWeeklyConvertVolumeUSD', + WellRollingWeeklyTradeVolumeUsd = 'well__rollingWeeklyTradeVolumeUSD', + WellRollingWeeklyTransferVolumeUsd = 'well__rollingWeeklyTransferVolumeUSD', + WellSymbol = 'well__symbol', + WellTotalLiquidityUsd = 'well__totalLiquidityUSD', + WellWellFunctionData = 'well__wellFunctionData' +} + +export type WellUpgradeHistory = { + __typename?: 'WellUpgradeHistory'; + aquifer: Aquifer; + boredWell: Scalars['Bytes']['output']; + /** The block this upgrade went into effect */ + effectiveBlock: Scalars['BigInt']['output']; + /** The timestamp this upgrade went into effect */ + effectiveTimestamp: Scalars['BigInt']['output']; + /** {Well Address}-{Upgrade Index} */ + id: Scalars['ID']['output']; + implementation: Implementation; + pumpData: Array; + pumps: Array; + /** The well that this upgrade history is for */ + well: Well; + wellFunction: WellFunction; + wellFunctionData: Scalars['Bytes']['output']; +}; + + +export type WellUpgradeHistoryPumpsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type WellUpgradeHistory_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + aquifer?: InputMaybe; + aquifer_?: InputMaybe; + aquifer_contains?: InputMaybe; + aquifer_contains_nocase?: InputMaybe; + aquifer_ends_with?: InputMaybe; + aquifer_ends_with_nocase?: InputMaybe; + aquifer_gt?: InputMaybe; + aquifer_gte?: InputMaybe; + aquifer_in?: InputMaybe>; + aquifer_lt?: InputMaybe; + aquifer_lte?: InputMaybe; + aquifer_not?: InputMaybe; + aquifer_not_contains?: InputMaybe; + aquifer_not_contains_nocase?: InputMaybe; + aquifer_not_ends_with?: InputMaybe; + aquifer_not_ends_with_nocase?: InputMaybe; + aquifer_not_in?: InputMaybe>; + aquifer_not_starts_with?: InputMaybe; + aquifer_not_starts_with_nocase?: InputMaybe; + aquifer_starts_with?: InputMaybe; + aquifer_starts_with_nocase?: InputMaybe; + boredWell?: InputMaybe; + boredWell_contains?: InputMaybe; + boredWell_gt?: InputMaybe; + boredWell_gte?: InputMaybe; + boredWell_in?: InputMaybe>; + boredWell_lt?: InputMaybe; + boredWell_lte?: InputMaybe; + boredWell_not?: InputMaybe; + boredWell_not_contains?: InputMaybe; + boredWell_not_in?: InputMaybe>; + effectiveBlock?: InputMaybe; + effectiveBlock_gt?: InputMaybe; + effectiveBlock_gte?: InputMaybe; + effectiveBlock_in?: InputMaybe>; + effectiveBlock_lt?: InputMaybe; + effectiveBlock_lte?: InputMaybe; + effectiveBlock_not?: InputMaybe; + effectiveBlock_not_in?: InputMaybe>; + effectiveTimestamp?: InputMaybe; + effectiveTimestamp_gt?: InputMaybe; + effectiveTimestamp_gte?: InputMaybe; + effectiveTimestamp_in?: InputMaybe>; + effectiveTimestamp_lt?: InputMaybe; + effectiveTimestamp_lte?: InputMaybe; + effectiveTimestamp_not?: InputMaybe; + effectiveTimestamp_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + implementation?: InputMaybe; + implementation_?: InputMaybe; + implementation_contains?: InputMaybe; + implementation_contains_nocase?: InputMaybe; + implementation_ends_with?: InputMaybe; + implementation_ends_with_nocase?: InputMaybe; + implementation_gt?: InputMaybe; + implementation_gte?: InputMaybe; + implementation_in?: InputMaybe>; + implementation_lt?: InputMaybe; + implementation_lte?: InputMaybe; + implementation_not?: InputMaybe; + implementation_not_contains?: InputMaybe; + implementation_not_contains_nocase?: InputMaybe; + implementation_not_ends_with?: InputMaybe; + implementation_not_ends_with_nocase?: InputMaybe; + implementation_not_in?: InputMaybe>; + implementation_not_starts_with?: InputMaybe; + implementation_not_starts_with_nocase?: InputMaybe; + implementation_starts_with?: InputMaybe; + implementation_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + pumpData?: InputMaybe>; + pumpData_contains?: InputMaybe>; + pumpData_contains_nocase?: InputMaybe>; + pumpData_not?: InputMaybe>; + pumpData_not_contains?: InputMaybe>; + pumpData_not_contains_nocase?: InputMaybe>; + pumps?: InputMaybe>; + pumps_?: InputMaybe; + pumps_contains?: InputMaybe>; + pumps_contains_nocase?: InputMaybe>; + pumps_not?: InputMaybe>; + pumps_not_contains?: InputMaybe>; + pumps_not_contains_nocase?: InputMaybe>; + well?: InputMaybe; + wellFunction?: InputMaybe; + wellFunctionData?: InputMaybe; + wellFunctionData_contains?: InputMaybe; + wellFunctionData_gt?: InputMaybe; + wellFunctionData_gte?: InputMaybe; + wellFunctionData_in?: InputMaybe>; + wellFunctionData_lt?: InputMaybe; + wellFunctionData_lte?: InputMaybe; + wellFunctionData_not?: InputMaybe; + wellFunctionData_not_contains?: InputMaybe; + wellFunctionData_not_in?: InputMaybe>; + wellFunction_?: InputMaybe; + wellFunction_contains?: InputMaybe; + wellFunction_contains_nocase?: InputMaybe; + wellFunction_ends_with?: InputMaybe; + wellFunction_ends_with_nocase?: InputMaybe; + wellFunction_gt?: InputMaybe; + wellFunction_gte?: InputMaybe; + wellFunction_in?: InputMaybe>; + wellFunction_lt?: InputMaybe; + wellFunction_lte?: InputMaybe; + wellFunction_not?: InputMaybe; + wellFunction_not_contains?: InputMaybe; + wellFunction_not_contains_nocase?: InputMaybe; + wellFunction_not_ends_with?: InputMaybe; + wellFunction_not_ends_with_nocase?: InputMaybe; + wellFunction_not_in?: InputMaybe>; + wellFunction_not_starts_with?: InputMaybe; + wellFunction_not_starts_with_nocase?: InputMaybe; + wellFunction_starts_with?: InputMaybe; + wellFunction_starts_with_nocase?: InputMaybe; + well_?: InputMaybe; + well_contains?: InputMaybe; + well_contains_nocase?: InputMaybe; + well_ends_with?: InputMaybe; + well_ends_with_nocase?: InputMaybe; + well_gt?: InputMaybe; + well_gte?: InputMaybe; + well_in?: InputMaybe>; + well_lt?: InputMaybe; + well_lte?: InputMaybe; + well_not?: InputMaybe; + well_not_contains?: InputMaybe; + well_not_contains_nocase?: InputMaybe; + well_not_ends_with?: InputMaybe; + well_not_ends_with_nocase?: InputMaybe; + well_not_in?: InputMaybe>; + well_not_starts_with?: InputMaybe; + well_not_starts_with_nocase?: InputMaybe; + well_starts_with?: InputMaybe; + well_starts_with_nocase?: InputMaybe; +}; + +export enum WellUpgradeHistory_OrderBy { + Aquifer = 'aquifer', + AquiferId = 'aquifer__id', + BoredWell = 'boredWell', + EffectiveBlock = 'effectiveBlock', + EffectiveTimestamp = 'effectiveTimestamp', + Id = 'id', + Implementation = 'implementation', + ImplementationId = 'implementation__id', + PumpData = 'pumpData', + Pumps = 'pumps', + Well = 'well', + WellFunction = 'wellFunction', + WellFunctionData = 'wellFunctionData', + WellFunctionId = 'wellFunction__id', + WellBoredWell = 'well__boredWell', + WellConvertVolumeUsd = 'well__convertVolumeUSD', + WellCreatedTimestamp = 'well__createdTimestamp', + WellCumulativeTradeVolumeUsd = 'well__cumulativeTradeVolumeUSD', + WellCumulativeTransferVolumeUsd = 'well__cumulativeTransferVolumeUSD', + WellId = 'well__id', + WellIsBeanstalk = 'well__isBeanstalk', + WellLastDailySnapshotDay = 'well__lastDailySnapshotDay', + WellLastHourlySnapshotHour = 'well__lastHourlySnapshotHour', + WellLastUpdateBlockNumber = 'well__lastUpdateBlockNumber', + WellLastUpdateTimestamp = 'well__lastUpdateTimestamp', + WellLpTokenSupply = 'well__lpTokenSupply', + WellName = 'well__name', + WellRollingDailyConvertVolumeUsd = 'well__rollingDailyConvertVolumeUSD', + WellRollingDailyTradeVolumeUsd = 'well__rollingDailyTradeVolumeUSD', + WellRollingDailyTransferVolumeUsd = 'well__rollingDailyTransferVolumeUSD', + WellRollingWeeklyConvertVolumeUsd = 'well__rollingWeeklyConvertVolumeUSD', + WellRollingWeeklyTradeVolumeUsd = 'well__rollingWeeklyTradeVolumeUSD', + WellRollingWeeklyTransferVolumeUsd = 'well__rollingWeeklyTransferVolumeUSD', + WellSymbol = 'well__symbol', + WellTotalLiquidityUsd = 'well__totalLiquidityUSD', + WellWellFunctionData = 'well__wellFunctionData' +} + +export type Well_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + aquifer?: InputMaybe; + aquifer_?: InputMaybe; + aquifer_contains?: InputMaybe; + aquifer_contains_nocase?: InputMaybe; + aquifer_ends_with?: InputMaybe; + aquifer_ends_with_nocase?: InputMaybe; + aquifer_gt?: InputMaybe; + aquifer_gte?: InputMaybe; + aquifer_in?: InputMaybe>; + aquifer_lt?: InputMaybe; + aquifer_lte?: InputMaybe; + aquifer_not?: InputMaybe; + aquifer_not_contains?: InputMaybe; + aquifer_not_contains_nocase?: InputMaybe; + aquifer_not_ends_with?: InputMaybe; + aquifer_not_ends_with_nocase?: InputMaybe; + aquifer_not_in?: InputMaybe>; + aquifer_not_starts_with?: InputMaybe; + aquifer_not_starts_with_nocase?: InputMaybe; + aquifer_starts_with?: InputMaybe; + aquifer_starts_with_nocase?: InputMaybe; + boredWell?: InputMaybe; + boredWell_contains?: InputMaybe; + boredWell_gt?: InputMaybe; + boredWell_gte?: InputMaybe; + boredWell_in?: InputMaybe>; + boredWell_lt?: InputMaybe; + boredWell_lte?: InputMaybe; + boredWell_not?: InputMaybe; + boredWell_not_contains?: InputMaybe; + boredWell_not_in?: InputMaybe>; + convertVolumeReserves?: InputMaybe>; + convertVolumeReservesUSD?: InputMaybe>; + convertVolumeReservesUSD_contains?: InputMaybe>; + convertVolumeReservesUSD_contains_nocase?: InputMaybe>; + convertVolumeReservesUSD_not?: InputMaybe>; + convertVolumeReservesUSD_not_contains?: InputMaybe>; + convertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + convertVolumeReserves_contains?: InputMaybe>; + convertVolumeReserves_contains_nocase?: InputMaybe>; + convertVolumeReserves_not?: InputMaybe>; + convertVolumeReserves_not_contains?: InputMaybe>; + convertVolumeReserves_not_contains_nocase?: InputMaybe>; + convertVolumeUSD?: InputMaybe; + convertVolumeUSD_gt?: InputMaybe; + convertVolumeUSD_gte?: InputMaybe; + convertVolumeUSD_in?: InputMaybe>; + convertVolumeUSD_lt?: InputMaybe; + convertVolumeUSD_lte?: InputMaybe; + convertVolumeUSD_not?: InputMaybe; + convertVolumeUSD_not_in?: InputMaybe>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + cumulativeBiTradeVolumeReserves?: InputMaybe>; + cumulativeBiTradeVolumeReserves_contains?: InputMaybe>; + cumulativeBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not_contains?: InputMaybe>; + cumulativeBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves?: InputMaybe>; + cumulativeTradeVolumeReservesUSD?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_contains?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not_contains?: InputMaybe>; + cumulativeTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves_contains?: InputMaybe>; + cumulativeTradeVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeReserves_not?: InputMaybe>; + cumulativeTradeVolumeReserves_not_contains?: InputMaybe>; + cumulativeTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTradeVolumeUSD?: InputMaybe; + cumulativeTradeVolumeUSD_gt?: InputMaybe; + cumulativeTradeVolumeUSD_gte?: InputMaybe; + cumulativeTradeVolumeUSD_in?: InputMaybe>; + cumulativeTradeVolumeUSD_lt?: InputMaybe; + cumulativeTradeVolumeUSD_lte?: InputMaybe; + cumulativeTradeVolumeUSD_not?: InputMaybe; + cumulativeTradeVolumeUSD_not_in?: InputMaybe>; + cumulativeTransferVolumeReserves?: InputMaybe>; + cumulativeTransferVolumeReservesUSD?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_contains?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not_contains?: InputMaybe>; + cumulativeTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReserves_contains?: InputMaybe>; + cumulativeTransferVolumeReserves_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeReserves_not?: InputMaybe>; + cumulativeTransferVolumeReserves_not_contains?: InputMaybe>; + cumulativeTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + cumulativeTransferVolumeUSD?: InputMaybe; + cumulativeTransferVolumeUSD_gt?: InputMaybe; + cumulativeTransferVolumeUSD_gte?: InputMaybe; + cumulativeTransferVolumeUSD_in?: InputMaybe>; + cumulativeTransferVolumeUSD_lt?: InputMaybe; + cumulativeTransferVolumeUSD_lte?: InputMaybe; + cumulativeTransferVolumeUSD_not?: InputMaybe; + cumulativeTransferVolumeUSD_not_in?: InputMaybe>; + dailySnapshots_?: InputMaybe; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + implementation?: InputMaybe; + implementation_?: InputMaybe; + implementation_contains?: InputMaybe; + implementation_contains_nocase?: InputMaybe; + implementation_ends_with?: InputMaybe; + implementation_ends_with_nocase?: InputMaybe; + implementation_gt?: InputMaybe; + implementation_gte?: InputMaybe; + implementation_in?: InputMaybe>; + implementation_lt?: InputMaybe; + implementation_lte?: InputMaybe; + implementation_not?: InputMaybe; + implementation_not_contains?: InputMaybe; + implementation_not_contains_nocase?: InputMaybe; + implementation_not_ends_with?: InputMaybe; + implementation_not_ends_with_nocase?: InputMaybe; + implementation_not_in?: InputMaybe>; + implementation_not_starts_with?: InputMaybe; + implementation_not_starts_with_nocase?: InputMaybe; + implementation_starts_with?: InputMaybe; + implementation_starts_with_nocase?: InputMaybe; + isBeanstalk?: InputMaybe; + isBeanstalk_in?: InputMaybe>; + isBeanstalk_not?: InputMaybe; + isBeanstalk_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotHour?: InputMaybe; + lastHourlySnapshotHour_gt?: InputMaybe; + lastHourlySnapshotHour_gte?: InputMaybe; + lastHourlySnapshotHour_in?: InputMaybe>; + lastHourlySnapshotHour_lt?: InputMaybe; + lastHourlySnapshotHour_lte?: InputMaybe; + lastHourlySnapshotHour_not?: InputMaybe; + lastHourlySnapshotHour_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + lpTokenSupply?: InputMaybe; + lpTokenSupply_gt?: InputMaybe; + lpTokenSupply_gte?: InputMaybe; + lpTokenSupply_in?: InputMaybe>; + lpTokenSupply_lt?: InputMaybe; + lpTokenSupply_lte?: InputMaybe; + lpTokenSupply_not?: InputMaybe; + lpTokenSupply_not_in?: InputMaybe>; + name?: InputMaybe; + name_contains?: InputMaybe; + name_contains_nocase?: InputMaybe; + name_ends_with?: InputMaybe; + name_ends_with_nocase?: InputMaybe; + name_gt?: InputMaybe; + name_gte?: InputMaybe; + name_in?: InputMaybe>; + name_lt?: InputMaybe; + name_lte?: InputMaybe; + name_not?: InputMaybe; + name_not_contains?: InputMaybe; + name_not_contains_nocase?: InputMaybe; + name_not_ends_with?: InputMaybe; + name_not_ends_with_nocase?: InputMaybe; + name_not_in?: InputMaybe>; + name_not_starts_with?: InputMaybe; + name_not_starts_with_nocase?: InputMaybe; + name_starts_with?: InputMaybe; + name_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + pumpData?: InputMaybe>; + pumpData_contains?: InputMaybe>; + pumpData_contains_nocase?: InputMaybe>; + pumpData_not?: InputMaybe>; + pumpData_not_contains?: InputMaybe>; + pumpData_not_contains_nocase?: InputMaybe>; + pumps?: InputMaybe>; + pumps_?: InputMaybe; + pumps_contains?: InputMaybe>; + pumps_contains_nocase?: InputMaybe>; + pumps_not?: InputMaybe>; + pumps_not_contains?: InputMaybe>; + pumps_not_contains_nocase?: InputMaybe>; + reserves?: InputMaybe>; + reservesUSD?: InputMaybe>; + reservesUSD_contains?: InputMaybe>; + reservesUSD_contains_nocase?: InputMaybe>; + reservesUSD_not?: InputMaybe>; + reservesUSD_not_contains?: InputMaybe>; + reservesUSD_not_contains_nocase?: InputMaybe>; + reserves_contains?: InputMaybe>; + reserves_contains_nocase?: InputMaybe>; + reserves_not?: InputMaybe>; + reserves_not_contains?: InputMaybe>; + reserves_not_contains_nocase?: InputMaybe>; + rollingDailyBiTradeVolumeReserves?: InputMaybe>; + rollingDailyBiTradeVolumeReserves_contains?: InputMaybe>; + rollingDailyBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + rollingDailyBiTradeVolumeReserves_not?: InputMaybe>; + rollingDailyBiTradeVolumeReserves_not_contains?: InputMaybe>; + rollingDailyBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingDailyConvertVolumeReserves?: InputMaybe>; + rollingDailyConvertVolumeReservesUSD?: InputMaybe>; + rollingDailyConvertVolumeReservesUSD_contains?: InputMaybe>; + rollingDailyConvertVolumeReservesUSD_contains_nocase?: InputMaybe>; + rollingDailyConvertVolumeReservesUSD_not?: InputMaybe>; + rollingDailyConvertVolumeReservesUSD_not_contains?: InputMaybe>; + rollingDailyConvertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + rollingDailyConvertVolumeReserves_contains?: InputMaybe>; + rollingDailyConvertVolumeReserves_contains_nocase?: InputMaybe>; + rollingDailyConvertVolumeReserves_not?: InputMaybe>; + rollingDailyConvertVolumeReserves_not_contains?: InputMaybe>; + rollingDailyConvertVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingDailyConvertVolumeUSD?: InputMaybe; + rollingDailyConvertVolumeUSD_gt?: InputMaybe; + rollingDailyConvertVolumeUSD_gte?: InputMaybe; + rollingDailyConvertVolumeUSD_in?: InputMaybe>; + rollingDailyConvertVolumeUSD_lt?: InputMaybe; + rollingDailyConvertVolumeUSD_lte?: InputMaybe; + rollingDailyConvertVolumeUSD_not?: InputMaybe; + rollingDailyConvertVolumeUSD_not_in?: InputMaybe>; + rollingDailyTradeVolumeReserves?: InputMaybe>; + rollingDailyTradeVolumeReservesUSD?: InputMaybe>; + rollingDailyTradeVolumeReservesUSD_contains?: InputMaybe>; + rollingDailyTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + rollingDailyTradeVolumeReservesUSD_not?: InputMaybe>; + rollingDailyTradeVolumeReservesUSD_not_contains?: InputMaybe>; + rollingDailyTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + rollingDailyTradeVolumeReserves_contains?: InputMaybe>; + rollingDailyTradeVolumeReserves_contains_nocase?: InputMaybe>; + rollingDailyTradeVolumeReserves_not?: InputMaybe>; + rollingDailyTradeVolumeReserves_not_contains?: InputMaybe>; + rollingDailyTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingDailyTradeVolumeUSD?: InputMaybe; + rollingDailyTradeVolumeUSD_gt?: InputMaybe; + rollingDailyTradeVolumeUSD_gte?: InputMaybe; + rollingDailyTradeVolumeUSD_in?: InputMaybe>; + rollingDailyTradeVolumeUSD_lt?: InputMaybe; + rollingDailyTradeVolumeUSD_lte?: InputMaybe; + rollingDailyTradeVolumeUSD_not?: InputMaybe; + rollingDailyTradeVolumeUSD_not_in?: InputMaybe>; + rollingDailyTransferVolumeReserves?: InputMaybe>; + rollingDailyTransferVolumeReservesUSD?: InputMaybe>; + rollingDailyTransferVolumeReservesUSD_contains?: InputMaybe>; + rollingDailyTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + rollingDailyTransferVolumeReservesUSD_not?: InputMaybe>; + rollingDailyTransferVolumeReservesUSD_not_contains?: InputMaybe>; + rollingDailyTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + rollingDailyTransferVolumeReserves_contains?: InputMaybe>; + rollingDailyTransferVolumeReserves_contains_nocase?: InputMaybe>; + rollingDailyTransferVolumeReserves_not?: InputMaybe>; + rollingDailyTransferVolumeReserves_not_contains?: InputMaybe>; + rollingDailyTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingDailyTransferVolumeUSD?: InputMaybe; + rollingDailyTransferVolumeUSD_gt?: InputMaybe; + rollingDailyTransferVolumeUSD_gte?: InputMaybe; + rollingDailyTransferVolumeUSD_in?: InputMaybe>; + rollingDailyTransferVolumeUSD_lt?: InputMaybe; + rollingDailyTransferVolumeUSD_lte?: InputMaybe; + rollingDailyTransferVolumeUSD_not?: InputMaybe; + rollingDailyTransferVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyBiTradeVolumeReserves?: InputMaybe>; + rollingWeeklyBiTradeVolumeReserves_contains?: InputMaybe>; + rollingWeeklyBiTradeVolumeReserves_contains_nocase?: InputMaybe>; + rollingWeeklyBiTradeVolumeReserves_not?: InputMaybe>; + rollingWeeklyBiTradeVolumeReserves_not_contains?: InputMaybe>; + rollingWeeklyBiTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingWeeklyConvertVolumeReserves?: InputMaybe>; + rollingWeeklyConvertVolumeReservesUSD?: InputMaybe>; + rollingWeeklyConvertVolumeReservesUSD_contains?: InputMaybe>; + rollingWeeklyConvertVolumeReservesUSD_contains_nocase?: InputMaybe>; + rollingWeeklyConvertVolumeReservesUSD_not?: InputMaybe>; + rollingWeeklyConvertVolumeReservesUSD_not_contains?: InputMaybe>; + rollingWeeklyConvertVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + rollingWeeklyConvertVolumeReserves_contains?: InputMaybe>; + rollingWeeklyConvertVolumeReserves_contains_nocase?: InputMaybe>; + rollingWeeklyConvertVolumeReserves_not?: InputMaybe>; + rollingWeeklyConvertVolumeReserves_not_contains?: InputMaybe>; + rollingWeeklyConvertVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingWeeklyConvertVolumeUSD?: InputMaybe; + rollingWeeklyConvertVolumeUSD_gt?: InputMaybe; + rollingWeeklyConvertVolumeUSD_gte?: InputMaybe; + rollingWeeklyConvertVolumeUSD_in?: InputMaybe>; + rollingWeeklyConvertVolumeUSD_lt?: InputMaybe; + rollingWeeklyConvertVolumeUSD_lte?: InputMaybe; + rollingWeeklyConvertVolumeUSD_not?: InputMaybe; + rollingWeeklyConvertVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyTradeVolumeReserves?: InputMaybe>; + rollingWeeklyTradeVolumeReservesUSD?: InputMaybe>; + rollingWeeklyTradeVolumeReservesUSD_contains?: InputMaybe>; + rollingWeeklyTradeVolumeReservesUSD_contains_nocase?: InputMaybe>; + rollingWeeklyTradeVolumeReservesUSD_not?: InputMaybe>; + rollingWeeklyTradeVolumeReservesUSD_not_contains?: InputMaybe>; + rollingWeeklyTradeVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + rollingWeeklyTradeVolumeReserves_contains?: InputMaybe>; + rollingWeeklyTradeVolumeReserves_contains_nocase?: InputMaybe>; + rollingWeeklyTradeVolumeReserves_not?: InputMaybe>; + rollingWeeklyTradeVolumeReserves_not_contains?: InputMaybe>; + rollingWeeklyTradeVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingWeeklyTradeVolumeUSD?: InputMaybe; + rollingWeeklyTradeVolumeUSD_gt?: InputMaybe; + rollingWeeklyTradeVolumeUSD_gte?: InputMaybe; + rollingWeeklyTradeVolumeUSD_in?: InputMaybe>; + rollingWeeklyTradeVolumeUSD_lt?: InputMaybe; + rollingWeeklyTradeVolumeUSD_lte?: InputMaybe; + rollingWeeklyTradeVolumeUSD_not?: InputMaybe; + rollingWeeklyTradeVolumeUSD_not_in?: InputMaybe>; + rollingWeeklyTransferVolumeReserves?: InputMaybe>; + rollingWeeklyTransferVolumeReservesUSD?: InputMaybe>; + rollingWeeklyTransferVolumeReservesUSD_contains?: InputMaybe>; + rollingWeeklyTransferVolumeReservesUSD_contains_nocase?: InputMaybe>; + rollingWeeklyTransferVolumeReservesUSD_not?: InputMaybe>; + rollingWeeklyTransferVolumeReservesUSD_not_contains?: InputMaybe>; + rollingWeeklyTransferVolumeReservesUSD_not_contains_nocase?: InputMaybe>; + rollingWeeklyTransferVolumeReserves_contains?: InputMaybe>; + rollingWeeklyTransferVolumeReserves_contains_nocase?: InputMaybe>; + rollingWeeklyTransferVolumeReserves_not?: InputMaybe>; + rollingWeeklyTransferVolumeReserves_not_contains?: InputMaybe>; + rollingWeeklyTransferVolumeReserves_not_contains_nocase?: InputMaybe>; + rollingWeeklyTransferVolumeUSD?: InputMaybe; + rollingWeeklyTransferVolumeUSD_gt?: InputMaybe; + rollingWeeklyTransferVolumeUSD_gte?: InputMaybe; + rollingWeeklyTransferVolumeUSD_in?: InputMaybe>; + rollingWeeklyTransferVolumeUSD_lt?: InputMaybe; + rollingWeeklyTransferVolumeUSD_lte?: InputMaybe; + rollingWeeklyTransferVolumeUSD_not?: InputMaybe; + rollingWeeklyTransferVolumeUSD_not_in?: InputMaybe>; + symbol?: InputMaybe; + symbol_contains?: InputMaybe; + symbol_contains_nocase?: InputMaybe; + symbol_ends_with?: InputMaybe; + symbol_ends_with_nocase?: InputMaybe; + symbol_gt?: InputMaybe; + symbol_gte?: InputMaybe; + symbol_in?: InputMaybe>; + symbol_lt?: InputMaybe; + symbol_lte?: InputMaybe; + symbol_not?: InputMaybe; + symbol_not_contains?: InputMaybe; + symbol_not_contains_nocase?: InputMaybe; + symbol_not_ends_with?: InputMaybe; + symbol_not_ends_with_nocase?: InputMaybe; + symbol_not_in?: InputMaybe>; + symbol_not_starts_with?: InputMaybe; + symbol_not_starts_with_nocase?: InputMaybe; + symbol_starts_with?: InputMaybe; + symbol_starts_with_nocase?: InputMaybe; + tokenOrder?: InputMaybe>; + tokenOrder_contains?: InputMaybe>; + tokenOrder_contains_nocase?: InputMaybe>; + tokenOrder_not?: InputMaybe>; + tokenOrder_not_contains?: InputMaybe>; + tokenOrder_not_contains_nocase?: InputMaybe>; + tokenRates?: InputMaybe>; + tokenRates_contains?: InputMaybe>; + tokenRates_contains_nocase?: InputMaybe>; + tokenRates_not?: InputMaybe>; + tokenRates_not_contains?: InputMaybe>; + tokenRates_not_contains_nocase?: InputMaybe>; + tokens?: InputMaybe>; + tokens_?: InputMaybe; + tokens_contains?: InputMaybe>; + tokens_contains_nocase?: InputMaybe>; + tokens_not?: InputMaybe>; + tokens_not_contains?: InputMaybe>; + tokens_not_contains_nocase?: InputMaybe>; + totalLiquidityUSD?: InputMaybe; + totalLiquidityUSD_gt?: InputMaybe; + totalLiquidityUSD_gte?: InputMaybe; + totalLiquidityUSD_in?: InputMaybe>; + totalLiquidityUSD_lt?: InputMaybe; + totalLiquidityUSD_lte?: InputMaybe; + totalLiquidityUSD_not?: InputMaybe; + totalLiquidityUSD_not_in?: InputMaybe>; + trades_?: InputMaybe; + upgradeHistory_?: InputMaybe; + wellFunction?: InputMaybe; + wellFunctionData?: InputMaybe; + wellFunctionData_contains?: InputMaybe; + wellFunctionData_gt?: InputMaybe; + wellFunctionData_gte?: InputMaybe; + wellFunctionData_in?: InputMaybe>; + wellFunctionData_lt?: InputMaybe; + wellFunctionData_lte?: InputMaybe; + wellFunctionData_not?: InputMaybe; + wellFunctionData_not_contains?: InputMaybe; + wellFunctionData_not_in?: InputMaybe>; + wellFunction_?: InputMaybe; + wellFunction_contains?: InputMaybe; + wellFunction_contains_nocase?: InputMaybe; + wellFunction_ends_with?: InputMaybe; + wellFunction_ends_with_nocase?: InputMaybe; + wellFunction_gt?: InputMaybe; + wellFunction_gte?: InputMaybe; + wellFunction_in?: InputMaybe>; + wellFunction_lt?: InputMaybe; + wellFunction_lte?: InputMaybe; + wellFunction_not?: InputMaybe; + wellFunction_not_contains?: InputMaybe; + wellFunction_not_contains_nocase?: InputMaybe; + wellFunction_not_ends_with?: InputMaybe; + wellFunction_not_ends_with_nocase?: InputMaybe; + wellFunction_not_in?: InputMaybe>; + wellFunction_not_starts_with?: InputMaybe; + wellFunction_not_starts_with_nocase?: InputMaybe; + wellFunction_starts_with?: InputMaybe; + wellFunction_starts_with_nocase?: InputMaybe; +}; + +export enum Well_OrderBy { + Aquifer = 'aquifer', + AquiferId = 'aquifer__id', + BoredWell = 'boredWell', + ConvertVolumeReserves = 'convertVolumeReserves', + ConvertVolumeReservesUsd = 'convertVolumeReservesUSD', + ConvertVolumeUsd = 'convertVolumeUSD', + CreatedTimestamp = 'createdTimestamp', + CumulativeBiTradeVolumeReserves = 'cumulativeBiTradeVolumeReserves', + CumulativeTradeVolumeReserves = 'cumulativeTradeVolumeReserves', + CumulativeTradeVolumeReservesUsd = 'cumulativeTradeVolumeReservesUSD', + CumulativeTradeVolumeUsd = 'cumulativeTradeVolumeUSD', + CumulativeTransferVolumeReserves = 'cumulativeTransferVolumeReserves', + CumulativeTransferVolumeReservesUsd = 'cumulativeTransferVolumeReservesUSD', + CumulativeTransferVolumeUsd = 'cumulativeTransferVolumeUSD', + DailySnapshots = 'dailySnapshots', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + Implementation = 'implementation', + ImplementationId = 'implementation__id', + IsBeanstalk = 'isBeanstalk', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotHour = 'lastHourlySnapshotHour', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LpTokenSupply = 'lpTokenSupply', + Name = 'name', + PumpData = 'pumpData', + Pumps = 'pumps', + Reserves = 'reserves', + ReservesUsd = 'reservesUSD', + RollingDailyBiTradeVolumeReserves = 'rollingDailyBiTradeVolumeReserves', + RollingDailyConvertVolumeReserves = 'rollingDailyConvertVolumeReserves', + RollingDailyConvertVolumeReservesUsd = 'rollingDailyConvertVolumeReservesUSD', + RollingDailyConvertVolumeUsd = 'rollingDailyConvertVolumeUSD', + RollingDailyTradeVolumeReserves = 'rollingDailyTradeVolumeReserves', + RollingDailyTradeVolumeReservesUsd = 'rollingDailyTradeVolumeReservesUSD', + RollingDailyTradeVolumeUsd = 'rollingDailyTradeVolumeUSD', + RollingDailyTransferVolumeReserves = 'rollingDailyTransferVolumeReserves', + RollingDailyTransferVolumeReservesUsd = 'rollingDailyTransferVolumeReservesUSD', + RollingDailyTransferVolumeUsd = 'rollingDailyTransferVolumeUSD', + RollingWeeklyBiTradeVolumeReserves = 'rollingWeeklyBiTradeVolumeReserves', + RollingWeeklyConvertVolumeReserves = 'rollingWeeklyConvertVolumeReserves', + RollingWeeklyConvertVolumeReservesUsd = 'rollingWeeklyConvertVolumeReservesUSD', + RollingWeeklyConvertVolumeUsd = 'rollingWeeklyConvertVolumeUSD', + RollingWeeklyTradeVolumeReserves = 'rollingWeeklyTradeVolumeReserves', + RollingWeeklyTradeVolumeReservesUsd = 'rollingWeeklyTradeVolumeReservesUSD', + RollingWeeklyTradeVolumeUsd = 'rollingWeeklyTradeVolumeUSD', + RollingWeeklyTransferVolumeReserves = 'rollingWeeklyTransferVolumeReserves', + RollingWeeklyTransferVolumeReservesUsd = 'rollingWeeklyTransferVolumeReservesUSD', + RollingWeeklyTransferVolumeUsd = 'rollingWeeklyTransferVolumeUSD', + Symbol = 'symbol', + TokenOrder = 'tokenOrder', + TokenRates = 'tokenRates', + Tokens = 'tokens', + TotalLiquidityUsd = 'totalLiquidityUSD', + Trades = 'trades', + UpgradeHistory = 'upgradeHistory', + WellFunction = 'wellFunction', + WellFunctionData = 'wellFunctionData', + WellFunctionId = 'wellFunction__id' +} + +export type _Block_ = { + __typename?: '_Block_'; + /** The hash of the block */ + hash?: Maybe; + /** The block number */ + number: Scalars['Int']['output']; + /** The hash of the parent block */ + parentHash?: Maybe; + /** Integer representation of the timestamp stored in blocks for the chain */ + timestamp?: Maybe; +}; + +/** The type for the top-level _meta field */ +export type _Meta_ = { + __typename?: '_Meta_'; + /** + * Information about a specific subgraph block. The hash of the block + * will be null if the _meta field has a block constraint that asks for + * a block number. It will be filled if the _meta field has no block constraint + * and therefore asks for the latest block + * + */ + block: _Block_; + /** The deployment ID */ + deployment: Scalars['String']['output']; + /** If `true`, the subgraph encountered indexing errors at some past block */ + hasIndexingErrors: Scalars['Boolean']['output']; +}; + +export enum _SubgraphErrorPolicy_ { + /** Data will be returned even if the subgraph has indexing errors */ + Allow = 'allow', + /** If the subgraph has indexing errors, data will be omitted. The default. */ + Deny = 'deny' +} + +export type BasinAdvancedChartQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BasinAdvancedChartQuery = { __typename?: 'Query', beanstalkHourlySnapshots: Array<{ __typename?: 'BeanstalkHourlySnapshot', id: string, createdTimestamp: any, cumulativeBuyVolumeUSD: any, cumulativeSellVolumeUSD: any, cumulativeTradeVolumeUSD: any, deltaBuyVolumeUSD: any, deltaSellVolumeUSD: any, deltaTradeVolumeUSD: any, cumulativeConvertUpVolumeUSD: any, cumulativeConvertDownVolumeUSD: any, cumulativeConvertVolumeUSD: any, cumulativeConvertNeutralTransferVolumeUSD: any, deltaConvertDownVolumeUSD: any, deltaConvertUpVolumeUSD: any, deltaConvertVolumeUSD: any, deltaConvertNeutralTransferVolumeUSD: any, totalLiquidityUSD: any, deltaLiquidityUSD: any, season: { __typename?: 'Season', season: number } }> }; + +export type BasinSeasonalSummaryQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BasinSeasonalSummaryQuery = { __typename?: 'Query', beanstalkHourlySnapshots: Array<{ __typename?: 'BeanstalkHourlySnapshot', id: string, createdTimestamp: any, cumulativeTradeVolumeUSD: any, cumulativeConvertVolumeUSD: any, totalLiquidityUSD: any, season: { __typename?: 'Season', season: number } }> }; + + +export const BasinAdvancedChartDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BasinAdvancedChart"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beanstalkHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season__season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"createdTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"season"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}}]}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeBuyVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeSellVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeTradeVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBuyVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaSellVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaTradeVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeConvertUpVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeConvertDownVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeConvertVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeConvertNeutralTransferVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaConvertDownVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaConvertUpVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaConvertVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaConvertNeutralTransferVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"totalLiquidityUSD"}},{"kind":"Field","name":{"kind":"Name","value":"deltaLiquidityUSD"}}]}}]}}]} as unknown as DocumentNode; +export const BasinSeasonalSummaryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BasinSeasonalSummary"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beanstalkHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season__season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"createdTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"season"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}}]}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeTradeVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeConvertVolumeUSD"}},{"kind":"Field","name":{"kind":"Name","value":"totalLiquidityUSD"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/src/generated/gql/exchange/index.ts b/src/generated/gql/exchange/index.ts new file mode 100644 index 000000000..af7839936 --- /dev/null +++ b/src/generated/gql/exchange/index.ts @@ -0,0 +1 @@ +export * from "./gql"; \ No newline at end of file diff --git a/src/generated/gql/pinto/gql.ts b/src/generated/gql/pinto/gql.ts new file mode 100644 index 000000000..ecc1b464e --- /dev/null +++ b/src/generated/gql/pinto/gql.ts @@ -0,0 +1,58 @@ +/* eslint-disable */ +import * as types from './graphql'; +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; + +/** + * Map of all GraphQL operations in the project. + * + * This map has several performance disadvantages: + * 1. It is not tree-shakeable, so it will include all operations in the project. + * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. + * 3. It does not support dead code elimination, so it will add unused operations. + * + * Therefore it is highly recommended to use the babel or swc plugin for production. + * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size + */ +type Documents = { + "query BeanAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n timestamp\n }\n crosses\n marketCap\n supply\n supplyInPegLP\n }\n }\n}": typeof types.BeanAdvancedChartDocument, + "query BeanSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n }\n }\n }\n}": typeof types.BeanSeasonsTableDocument, + "query BeanSeasonalBean($from: Int, $to: Int) {\n beanHourlySnapshots(\n where: {season_: {season_gte: $from, season_lte: $to}}\n first: 1000\n orderBy: season__season\n orderDirection: asc\n ) {\n id\n season {\n season\n }\n supply\n marketCap\n instPrice\n l2sr\n liquidityUSD\n createdTimestamp\n }\n}": typeof types.BeanSeasonalBeanDocument, +}; +const documents: Documents = { + "query BeanAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n timestamp\n }\n crosses\n marketCap\n supply\n supplyInPegLP\n }\n }\n}": types.BeanAdvancedChartDocument, + "query BeanSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n }\n }\n }\n}": types.BeanSeasonsTableDocument, + "query BeanSeasonalBean($from: Int, $to: Int) {\n beanHourlySnapshots(\n where: {season_: {season_gte: $from, season_lte: $to}}\n first: 1000\n orderBy: season__season\n orderDirection: asc\n ) {\n id\n season {\n season\n }\n supply\n marketCap\n instPrice\n l2sr\n liquidityUSD\n createdTimestamp\n }\n}": types.BeanSeasonalBeanDocument, +}; + +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + * + * + * @example + * ```ts + * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`); + * ``` + * + * The query argument is unknown! + * Please regenerate the types. + */ +export function graphql(source: string): unknown; + +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n timestamp\n }\n crosses\n marketCap\n supply\n supplyInPegLP\n }\n }\n}"): (typeof documents)["query BeanAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n timestamp\n }\n crosses\n marketCap\n supply\n supplyInPegLP\n }\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n }\n }\n }\n}"): (typeof documents)["query BeanSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n timestamp\n beanHourlySnapshot {\n l2sr\n twaPrice\n instPrice\n twaDeltaB\n instDeltaB\n season {\n season\n }\n }\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanSeasonalBean($from: Int, $to: Int) {\n beanHourlySnapshots(\n where: {season_: {season_gte: $from, season_lte: $to}}\n first: 1000\n orderBy: season__season\n orderDirection: asc\n ) {\n id\n season {\n season\n }\n supply\n marketCap\n instPrice\n l2sr\n liquidityUSD\n createdTimestamp\n }\n}"): (typeof documents)["query BeanSeasonalBean($from: Int, $to: Int) {\n beanHourlySnapshots(\n where: {season_: {season_gte: $from, season_lte: $to}}\n first: 1000\n orderBy: season__season\n orderDirection: asc\n ) {\n id\n season {\n season\n }\n supply\n marketCap\n instPrice\n l2sr\n liquidityUSD\n createdTimestamp\n }\n}"]; + +export function graphql(source: string) { + return (documents as any)[source] ?? {}; +} + +export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; \ No newline at end of file diff --git a/src/generated/gql/pinto/graphql.ts b/src/generated/gql/pinto/graphql.ts new file mode 100644 index 000000000..30818692d --- /dev/null +++ b/src/generated/gql/pinto/graphql.ts @@ -0,0 +1,4861 @@ +/* eslint-disable */ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + BigDecimal: { input: any; output: any; } + BigInt: { input: any; output: any; } + Bytes: { input: any; output: any; } + /** + * 8 bytes signed integer + * + */ + Int8: { input: any; output: any; } + /** + * A string representation of microseconds UNIX timestamp (16 digits) + * + */ + Timestamp: { input: any; output: any; } +}; + +export enum Aggregation_Interval { + Day = 'day', + Hour = 'hour' +} + +export type Bean = { + __typename?: 'Bean'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** Peg cross references */ + crossEvents: Array; + /** Cumulative number of peg crosses */ + crosses: Scalars['Int']['output']; + /** Current Beanstalk season */ + currentSeason: Season; + dailySnapshots: Array; + /** Dewhitelisted pools having Bean */ + dewhitelistedPools: Array; + hourlySnapshots: Array; + /** Contract address of the Bean token */ + id: Scalars['Bytes']['output']; + /** Last timestamp a peg cross occurred */ + lastCross: Scalars['BigInt']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** * The last recorded bean price. Updated upon a trade, a peg cross, or sunrise. May not be useful for external use as accuracy is not guaranteed. */ + lastPrice: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Total liquidity trading against this Bean */ + liquidityUSD: Scalars['BigDecimal']['output']; + /** (DEPRECATED): Not relevant to Pinto. // Amount of the supply which is considered Locked Beans (untradeable due to chop rate) */ + lockedBeans: Scalars['BigInt']['output']; + /** Whitelisted pools having Bean */ + pools: Array; + /** Current bean supply */ + supply: Scalars['BigInt']['output']; + /** Percent of supply in LP used for peg maintenance */ + supplyInPegLP: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Exchange volume in bean */ + volume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Exchange volume in USD */ + volumeUSD: Scalars['BigDecimal']['output']; +}; + + +export type BeanCrossEventsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type BeanDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type BeanDewhitelistedPoolsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type BeanHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type BeanPoolsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type BeanCross = { + __typename?: 'BeanCross'; + /** Whether this cross was above or below peg */ + above: Scalars['Boolean']['output']; + /** The Bean for which this cross occurred */ + bean: Bean; + /** Daily snapshot for this cross */ + beanDailySnapshot: BeanDailySnapshot; + /** Hourly snapshot for this cross */ + beanHourlySnapshot: BeanHourlySnapshot; + /** Block number when this cross was identified */ + blockNumber: Scalars['BigInt']['output']; + /** Cross number (int) */ + cross: Scalars['Int']['output']; + /** Cross number (string) */ + id: Scalars['ID']['output']; + /** The price of bean at the time this cross occurred */ + price: Scalars['BigDecimal']['output']; + /** Time elapsed since the previous cross */ + timeSinceLastCross: Scalars['BigInt']['output']; + /** Timestamp when this cross was identified */ + timestamp: Scalars['BigInt']['output']; +}; + +export type BeanCross_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + above?: InputMaybe; + above_in?: InputMaybe>; + above_not?: InputMaybe; + above_not_in?: InputMaybe>; + and?: InputMaybe>>; + bean?: InputMaybe; + beanDailySnapshot?: InputMaybe; + beanDailySnapshot_?: InputMaybe; + beanDailySnapshot_contains?: InputMaybe; + beanDailySnapshot_contains_nocase?: InputMaybe; + beanDailySnapshot_ends_with?: InputMaybe; + beanDailySnapshot_ends_with_nocase?: InputMaybe; + beanDailySnapshot_gt?: InputMaybe; + beanDailySnapshot_gte?: InputMaybe; + beanDailySnapshot_in?: InputMaybe>; + beanDailySnapshot_lt?: InputMaybe; + beanDailySnapshot_lte?: InputMaybe; + beanDailySnapshot_not?: InputMaybe; + beanDailySnapshot_not_contains?: InputMaybe; + beanDailySnapshot_not_contains_nocase?: InputMaybe; + beanDailySnapshot_not_ends_with?: InputMaybe; + beanDailySnapshot_not_ends_with_nocase?: InputMaybe; + beanDailySnapshot_not_in?: InputMaybe>; + beanDailySnapshot_not_starts_with?: InputMaybe; + beanDailySnapshot_not_starts_with_nocase?: InputMaybe; + beanDailySnapshot_starts_with?: InputMaybe; + beanDailySnapshot_starts_with_nocase?: InputMaybe; + beanHourlySnapshot?: InputMaybe; + beanHourlySnapshot_?: InputMaybe; + beanHourlySnapshot_contains?: InputMaybe; + beanHourlySnapshot_contains_nocase?: InputMaybe; + beanHourlySnapshot_ends_with?: InputMaybe; + beanHourlySnapshot_ends_with_nocase?: InputMaybe; + beanHourlySnapshot_gt?: InputMaybe; + beanHourlySnapshot_gte?: InputMaybe; + beanHourlySnapshot_in?: InputMaybe>; + beanHourlySnapshot_lt?: InputMaybe; + beanHourlySnapshot_lte?: InputMaybe; + beanHourlySnapshot_not?: InputMaybe; + beanHourlySnapshot_not_contains?: InputMaybe; + beanHourlySnapshot_not_contains_nocase?: InputMaybe; + beanHourlySnapshot_not_ends_with?: InputMaybe; + beanHourlySnapshot_not_ends_with_nocase?: InputMaybe; + beanHourlySnapshot_not_in?: InputMaybe>; + beanHourlySnapshot_not_starts_with?: InputMaybe; + beanHourlySnapshot_not_starts_with_nocase?: InputMaybe; + beanHourlySnapshot_starts_with?: InputMaybe; + beanHourlySnapshot_starts_with_nocase?: InputMaybe; + bean_?: InputMaybe; + bean_contains?: InputMaybe; + bean_contains_nocase?: InputMaybe; + bean_ends_with?: InputMaybe; + bean_ends_with_nocase?: InputMaybe; + bean_gt?: InputMaybe; + bean_gte?: InputMaybe; + bean_in?: InputMaybe>; + bean_lt?: InputMaybe; + bean_lte?: InputMaybe; + bean_not?: InputMaybe; + bean_not_contains?: InputMaybe; + bean_not_contains_nocase?: InputMaybe; + bean_not_ends_with?: InputMaybe; + bean_not_ends_with_nocase?: InputMaybe; + bean_not_in?: InputMaybe>; + bean_not_starts_with?: InputMaybe; + bean_not_starts_with_nocase?: InputMaybe; + bean_starts_with?: InputMaybe; + bean_starts_with_nocase?: InputMaybe; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + cross?: InputMaybe; + cross_gt?: InputMaybe; + cross_gte?: InputMaybe; + cross_in?: InputMaybe>; + cross_lt?: InputMaybe; + cross_lte?: InputMaybe; + cross_not?: InputMaybe; + cross_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + price?: InputMaybe; + price_gt?: InputMaybe; + price_gte?: InputMaybe; + price_in?: InputMaybe>; + price_lt?: InputMaybe; + price_lte?: InputMaybe; + price_not?: InputMaybe; + price_not_in?: InputMaybe>; + timeSinceLastCross?: InputMaybe; + timeSinceLastCross_gt?: InputMaybe; + timeSinceLastCross_gte?: InputMaybe; + timeSinceLastCross_in?: InputMaybe>; + timeSinceLastCross_lt?: InputMaybe; + timeSinceLastCross_lte?: InputMaybe; + timeSinceLastCross_not?: InputMaybe; + timeSinceLastCross_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; +}; + +export enum BeanCross_OrderBy { + Above = 'above', + Bean = 'bean', + BeanDailySnapshot = 'beanDailySnapshot', + BeanDailySnapshotCreatedTimestamp = 'beanDailySnapshot__createdTimestamp', + BeanDailySnapshotCrosses = 'beanDailySnapshot__crosses', + BeanDailySnapshotDay = 'beanDailySnapshot__day', + BeanDailySnapshotDeltaCrosses = 'beanDailySnapshot__deltaCrosses', + BeanDailySnapshotDeltaLiquidityUsd = 'beanDailySnapshot__deltaLiquidityUSD', + BeanDailySnapshotDeltaVolume = 'beanDailySnapshot__deltaVolume', + BeanDailySnapshotDeltaVolumeUsd = 'beanDailySnapshot__deltaVolumeUSD', + BeanDailySnapshotId = 'beanDailySnapshot__id', + BeanDailySnapshotInstDeltaB = 'beanDailySnapshot__instDeltaB', + BeanDailySnapshotInstPrice = 'beanDailySnapshot__instPrice', + BeanDailySnapshotL2sr = 'beanDailySnapshot__l2sr', + BeanDailySnapshotLastUpdateBlockNumber = 'beanDailySnapshot__lastUpdateBlockNumber', + BeanDailySnapshotLastUpdateTimestamp = 'beanDailySnapshot__lastUpdateTimestamp', + BeanDailySnapshotLiquidityUsd = 'beanDailySnapshot__liquidityUSD', + BeanDailySnapshotLockedBeans = 'beanDailySnapshot__lockedBeans', + BeanDailySnapshotMarketCap = 'beanDailySnapshot__marketCap', + BeanDailySnapshotSupply = 'beanDailySnapshot__supply', + BeanDailySnapshotSupplyInPegLp = 'beanDailySnapshot__supplyInPegLP', + BeanDailySnapshotTwaBeanLiquidityUsd = 'beanDailySnapshot__twaBeanLiquidityUSD', + BeanDailySnapshotTwaDeltaB = 'beanDailySnapshot__twaDeltaB', + BeanDailySnapshotTwaLiquidityUsd = 'beanDailySnapshot__twaLiquidityUSD', + BeanDailySnapshotTwaNonBeanLiquidityUsd = 'beanDailySnapshot__twaNonBeanLiquidityUSD', + BeanDailySnapshotTwaPrice = 'beanDailySnapshot__twaPrice', + BeanDailySnapshotVolume = 'beanDailySnapshot__volume', + BeanDailySnapshotVolumeUsd = 'beanDailySnapshot__volumeUSD', + BeanHourlySnapshot = 'beanHourlySnapshot', + BeanHourlySnapshotCreatedTimestamp = 'beanHourlySnapshot__createdTimestamp', + BeanHourlySnapshotCrosses = 'beanHourlySnapshot__crosses', + BeanHourlySnapshotDeltaCrosses = 'beanHourlySnapshot__deltaCrosses', + BeanHourlySnapshotDeltaLiquidityUsd = 'beanHourlySnapshot__deltaLiquidityUSD', + BeanHourlySnapshotDeltaVolume = 'beanHourlySnapshot__deltaVolume', + BeanHourlySnapshotDeltaVolumeUsd = 'beanHourlySnapshot__deltaVolumeUSD', + BeanHourlySnapshotId = 'beanHourlySnapshot__id', + BeanHourlySnapshotInstDeltaB = 'beanHourlySnapshot__instDeltaB', + BeanHourlySnapshotInstPrice = 'beanHourlySnapshot__instPrice', + BeanHourlySnapshotL2sr = 'beanHourlySnapshot__l2sr', + BeanHourlySnapshotLastUpdateBlockNumber = 'beanHourlySnapshot__lastUpdateBlockNumber', + BeanHourlySnapshotLastUpdateTimestamp = 'beanHourlySnapshot__lastUpdateTimestamp', + BeanHourlySnapshotLiquidityUsd = 'beanHourlySnapshot__liquidityUSD', + BeanHourlySnapshotLockedBeans = 'beanHourlySnapshot__lockedBeans', + BeanHourlySnapshotMarketCap = 'beanHourlySnapshot__marketCap', + BeanHourlySnapshotSeasonNumber = 'beanHourlySnapshot__seasonNumber', + BeanHourlySnapshotSupply = 'beanHourlySnapshot__supply', + BeanHourlySnapshotSupplyInPegLp = 'beanHourlySnapshot__supplyInPegLP', + BeanHourlySnapshotTwaBeanLiquidityUsd = 'beanHourlySnapshot__twaBeanLiquidityUSD', + BeanHourlySnapshotTwaDeltaB = 'beanHourlySnapshot__twaDeltaB', + BeanHourlySnapshotTwaLiquidityUsd = 'beanHourlySnapshot__twaLiquidityUSD', + BeanHourlySnapshotTwaNonBeanLiquidityUsd = 'beanHourlySnapshot__twaNonBeanLiquidityUSD', + BeanHourlySnapshotTwaPrice = 'beanHourlySnapshot__twaPrice', + BeanHourlySnapshotVolume = 'beanHourlySnapshot__volume', + BeanHourlySnapshotVolumeUsd = 'beanHourlySnapshot__volumeUSD', + BeanCreatedTimestamp = 'bean__createdTimestamp', + BeanCrosses = 'bean__crosses', + BeanId = 'bean__id', + BeanLastCross = 'bean__lastCross', + BeanLastDailySnapshotDay = 'bean__lastDailySnapshotDay', + BeanLastHourlySnapshotSeason = 'bean__lastHourlySnapshotSeason', + BeanLastPrice = 'bean__lastPrice', + BeanLastUpdateBlockNumber = 'bean__lastUpdateBlockNumber', + BeanLastUpdateTimestamp = 'bean__lastUpdateTimestamp', + BeanLiquidityUsd = 'bean__liquidityUSD', + BeanLockedBeans = 'bean__lockedBeans', + BeanSupply = 'bean__supply', + BeanSupplyInPegLp = 'bean__supplyInPegLP', + BeanVolume = 'bean__volume', + BeanVolumeUsd = 'bean__volumeUSD', + BlockNumber = 'blockNumber', + Cross = 'cross', + Id = 'id', + Price = 'price', + TimeSinceLastCross = 'timeSinceLastCross', + Timestamp = 'timestamp' +} + +export type BeanDailySnapshot = { + __typename?: 'BeanDailySnapshot'; + bean: Bean; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All crosses occurred in the same time period as this snapshot */ + crossEvents: Array; + /** Cumulative number of peg crosses */ + crosses: Scalars['Int']['output']; + /** Unix day */ + day: Scalars['Int']['output']; + /** Delta of crosses */ + deltaCrosses: Scalars['Int']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of liquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of volume */ + deltaVolume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of volumeUSD */ + deltaVolumeUSD: Scalars['BigDecimal']['output']; + /** {Bean ID}-{Unix day} */ + id: Scalars['ID']['output']; + /** Sum of instantaneous deltaB across all whitelisted pools at the end of the previous season */ + instDeltaB: Scalars['BigDecimal']['output']; + /** Bean price at the end of the previous season */ + instPrice: Scalars['BigDecimal']['output']; + /** The L2SR at the end of the previous season. [0-1] */ + l2sr: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Total liquidity trading against this Bean */ + liquidityUSD: Scalars['BigDecimal']['output']; + /** (DEPRECATED): Not relevant to Pinto. // Amount of the supply which is considered Locked Beans (untradeable due to chop rate) */ + lockedBeans: Scalars['BigInt']['output']; + /** Market cap at the end of the previous season */ + marketCap: Scalars['BigDecimal']['output']; + season: Season; + /** Bean supply */ + supply: Scalars['BigInt']['output']; + /** Percent of supply in LP used for peg maintenance */ + supplyInPegLP: Scalars['BigDecimal']['output']; + /** Time-Weighted cumulative bean USD liquidity over the previous season. Sum of the same property on individual pools */ + twaBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Sum of time-weighted deltaB across all whitelisted pools over the previous season */ + twaDeltaB: Scalars['BigDecimal']['output']; + /** Time-Weighted cumulative total USD liquidity over the previous season. Sum of the same property on individual pools */ + twaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted cumulative non-bean USD liquidity over the previous season. Sum of the same property on individual pools */ + twaNonBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted bean price over the previous season */ + twaPrice: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Exchange volume in bean */ + volume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Exchange volume in USD */ + volumeUSD: Scalars['BigDecimal']['output']; +}; + + +export type BeanDailySnapshotCrossEventsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type BeanDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + bean?: InputMaybe; + bean_?: InputMaybe; + bean_contains?: InputMaybe; + bean_contains_nocase?: InputMaybe; + bean_ends_with?: InputMaybe; + bean_ends_with_nocase?: InputMaybe; + bean_gt?: InputMaybe; + bean_gte?: InputMaybe; + bean_in?: InputMaybe>; + bean_lt?: InputMaybe; + bean_lte?: InputMaybe; + bean_not?: InputMaybe; + bean_not_contains?: InputMaybe; + bean_not_contains_nocase?: InputMaybe; + bean_not_ends_with?: InputMaybe; + bean_not_ends_with_nocase?: InputMaybe; + bean_not_in?: InputMaybe>; + bean_not_starts_with?: InputMaybe; + bean_not_starts_with_nocase?: InputMaybe; + bean_starts_with?: InputMaybe; + bean_starts_with_nocase?: InputMaybe; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + crossEvents_?: InputMaybe; + crosses?: InputMaybe; + crosses_gt?: InputMaybe; + crosses_gte?: InputMaybe; + crosses_in?: InputMaybe>; + crosses_lt?: InputMaybe; + crosses_lte?: InputMaybe; + crosses_not?: InputMaybe; + crosses_not_in?: InputMaybe>; + day?: InputMaybe; + day_gt?: InputMaybe; + day_gte?: InputMaybe; + day_in?: InputMaybe>; + day_lt?: InputMaybe; + day_lte?: InputMaybe; + day_not?: InputMaybe; + day_not_in?: InputMaybe>; + deltaCrosses?: InputMaybe; + deltaCrosses_gt?: InputMaybe; + deltaCrosses_gte?: InputMaybe; + deltaCrosses_in?: InputMaybe>; + deltaCrosses_lt?: InputMaybe; + deltaCrosses_lte?: InputMaybe; + deltaCrosses_not?: InputMaybe; + deltaCrosses_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaVolume?: InputMaybe; + deltaVolumeUSD?: InputMaybe; + deltaVolumeUSD_gt?: InputMaybe; + deltaVolumeUSD_gte?: InputMaybe; + deltaVolumeUSD_in?: InputMaybe>; + deltaVolumeUSD_lt?: InputMaybe; + deltaVolumeUSD_lte?: InputMaybe; + deltaVolumeUSD_not?: InputMaybe; + deltaVolumeUSD_not_in?: InputMaybe>; + deltaVolume_gt?: InputMaybe; + deltaVolume_gte?: InputMaybe; + deltaVolume_in?: InputMaybe>; + deltaVolume_lt?: InputMaybe; + deltaVolume_lte?: InputMaybe; + deltaVolume_not?: InputMaybe; + deltaVolume_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + instDeltaB?: InputMaybe; + instDeltaB_gt?: InputMaybe; + instDeltaB_gte?: InputMaybe; + instDeltaB_in?: InputMaybe>; + instDeltaB_lt?: InputMaybe; + instDeltaB_lte?: InputMaybe; + instDeltaB_not?: InputMaybe; + instDeltaB_not_in?: InputMaybe>; + instPrice?: InputMaybe; + instPrice_gt?: InputMaybe; + instPrice_gte?: InputMaybe; + instPrice_in?: InputMaybe>; + instPrice_lt?: InputMaybe; + instPrice_lte?: InputMaybe; + instPrice_not?: InputMaybe; + instPrice_not_in?: InputMaybe>; + l2sr?: InputMaybe; + l2sr_gt?: InputMaybe; + l2sr_gte?: InputMaybe; + l2sr_in?: InputMaybe>; + l2sr_lt?: InputMaybe; + l2sr_lte?: InputMaybe; + l2sr_not?: InputMaybe; + l2sr_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + liquidityUSD?: InputMaybe; + liquidityUSD_gt?: InputMaybe; + liquidityUSD_gte?: InputMaybe; + liquidityUSD_in?: InputMaybe>; + liquidityUSD_lt?: InputMaybe; + liquidityUSD_lte?: InputMaybe; + liquidityUSD_not?: InputMaybe; + liquidityUSD_not_in?: InputMaybe>; + lockedBeans?: InputMaybe; + lockedBeans_gt?: InputMaybe; + lockedBeans_gte?: InputMaybe; + lockedBeans_in?: InputMaybe>; + lockedBeans_lt?: InputMaybe; + lockedBeans_lte?: InputMaybe; + lockedBeans_not?: InputMaybe; + lockedBeans_not_in?: InputMaybe>; + marketCap?: InputMaybe; + marketCap_gt?: InputMaybe; + marketCap_gte?: InputMaybe; + marketCap_in?: InputMaybe>; + marketCap_lt?: InputMaybe; + marketCap_lte?: InputMaybe; + marketCap_not?: InputMaybe; + marketCap_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supplyInPegLP?: InputMaybe; + supplyInPegLP_gt?: InputMaybe; + supplyInPegLP_gte?: InputMaybe; + supplyInPegLP_in?: InputMaybe>; + supplyInPegLP_lt?: InputMaybe; + supplyInPegLP_lte?: InputMaybe; + supplyInPegLP_not?: InputMaybe; + supplyInPegLP_not_in?: InputMaybe>; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + twaBeanLiquidityUSD?: InputMaybe; + twaBeanLiquidityUSD_gt?: InputMaybe; + twaBeanLiquidityUSD_gte?: InputMaybe; + twaBeanLiquidityUSD_in?: InputMaybe>; + twaBeanLiquidityUSD_lt?: InputMaybe; + twaBeanLiquidityUSD_lte?: InputMaybe; + twaBeanLiquidityUSD_not?: InputMaybe; + twaBeanLiquidityUSD_not_in?: InputMaybe>; + twaDeltaB?: InputMaybe; + twaDeltaB_gt?: InputMaybe; + twaDeltaB_gte?: InputMaybe; + twaDeltaB_in?: InputMaybe>; + twaDeltaB_lt?: InputMaybe; + twaDeltaB_lte?: InputMaybe; + twaDeltaB_not?: InputMaybe; + twaDeltaB_not_in?: InputMaybe>; + twaLiquidityUSD?: InputMaybe; + twaLiquidityUSD_gt?: InputMaybe; + twaLiquidityUSD_gte?: InputMaybe; + twaLiquidityUSD_in?: InputMaybe>; + twaLiquidityUSD_lt?: InputMaybe; + twaLiquidityUSD_lte?: InputMaybe; + twaLiquidityUSD_not?: InputMaybe; + twaLiquidityUSD_not_in?: InputMaybe>; + twaNonBeanLiquidityUSD?: InputMaybe; + twaNonBeanLiquidityUSD_gt?: InputMaybe; + twaNonBeanLiquidityUSD_gte?: InputMaybe; + twaNonBeanLiquidityUSD_in?: InputMaybe>; + twaNonBeanLiquidityUSD_lt?: InputMaybe; + twaNonBeanLiquidityUSD_lte?: InputMaybe; + twaNonBeanLiquidityUSD_not?: InputMaybe; + twaNonBeanLiquidityUSD_not_in?: InputMaybe>; + twaPrice?: InputMaybe; + twaPrice_gt?: InputMaybe; + twaPrice_gte?: InputMaybe; + twaPrice_in?: InputMaybe>; + twaPrice_lt?: InputMaybe; + twaPrice_lte?: InputMaybe; + twaPrice_not?: InputMaybe; + twaPrice_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum BeanDailySnapshot_OrderBy { + Bean = 'bean', + BeanCreatedTimestamp = 'bean__createdTimestamp', + BeanCrosses = 'bean__crosses', + BeanId = 'bean__id', + BeanLastCross = 'bean__lastCross', + BeanLastDailySnapshotDay = 'bean__lastDailySnapshotDay', + BeanLastHourlySnapshotSeason = 'bean__lastHourlySnapshotSeason', + BeanLastPrice = 'bean__lastPrice', + BeanLastUpdateBlockNumber = 'bean__lastUpdateBlockNumber', + BeanLastUpdateTimestamp = 'bean__lastUpdateTimestamp', + BeanLiquidityUsd = 'bean__liquidityUSD', + BeanLockedBeans = 'bean__lockedBeans', + BeanSupply = 'bean__supply', + BeanSupplyInPegLp = 'bean__supplyInPegLP', + BeanVolume = 'bean__volume', + BeanVolumeUsd = 'bean__volumeUSD', + CreatedTimestamp = 'createdTimestamp', + CrossEvents = 'crossEvents', + Crosses = 'crosses', + Day = 'day', + DeltaCrosses = 'deltaCrosses', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaVolume = 'deltaVolume', + DeltaVolumeUsd = 'deltaVolumeUSD', + Id = 'id', + InstDeltaB = 'instDeltaB', + InstPrice = 'instPrice', + L2sr = 'l2sr', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LiquidityUsd = 'liquidityUSD', + LockedBeans = 'lockedBeans', + MarketCap = 'marketCap', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + Supply = 'supply', + SupplyInPegLp = 'supplyInPegLP', + TwaBeanLiquidityUsd = 'twaBeanLiquidityUSD', + TwaDeltaB = 'twaDeltaB', + TwaLiquidityUsd = 'twaLiquidityUSD', + TwaNonBeanLiquidityUsd = 'twaNonBeanLiquidityUSD', + TwaPrice = 'twaPrice', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type BeanHourlySnapshot = { + __typename?: 'BeanHourlySnapshot'; + bean: Bean; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All crosses occurred in the same time period as this snapshot */ + crossEvents: Array; + /** Cumulative number of peg crosses */ + crosses: Scalars['Int']['output']; + /** Delta of crosses */ + deltaCrosses: Scalars['Int']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of liquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of volume */ + deltaVolume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of volumeUSD */ + deltaVolumeUSD: Scalars['BigDecimal']['output']; + /** {Bean ID}-{Season} */ + id: Scalars['ID']['output']; + /** Sum of instantaneous deltaB across all whitelisted pools at the end of the previous season */ + instDeltaB: Scalars['BigDecimal']['output']; + /** Bean price at the end of the previous season */ + instPrice: Scalars['BigDecimal']['output']; + /** The L2SR at the end of the previous season. [0-1] */ + l2sr: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Total liquidity trading against this Bean */ + liquidityUSD: Scalars['BigDecimal']['output']; + /** (DEPRECATED): Not relevant to Pinto. // Amount of the supply which is considered Locked Beans (untradeable due to chop rate) */ + lockedBeans: Scalars['BigInt']['output']; + /** Market cap at the end of the previous season */ + marketCap: Scalars['BigDecimal']['output']; + season: Season; + seasonNumber: Scalars['Int']['output']; + /** Bean supply */ + supply: Scalars['BigInt']['output']; + /** Percent of bean supply in LP pools [0-1] */ + supplyInPegLP: Scalars['BigDecimal']['output']; + /** Time-Weighted cumulative bean USD liquidity over the previous season. Sum of the same property on individual pools */ + twaBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Sum of time-weighted deltaB across all whitelisted pools over the previous season */ + twaDeltaB: Scalars['BigDecimal']['output']; + /** Time-Weighted cumulative total USD liquidity over the previous season. Sum of the same property on individual pools */ + twaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted cumulative non-bean USD liquidity over the previous season. Sum of the same property on individual pools */ + twaNonBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted bean price over the previous season */ + twaPrice: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Exchange volume in bean */ + volume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Exchange volume in USD */ + volumeUSD: Scalars['BigDecimal']['output']; +}; + + +export type BeanHourlySnapshotCrossEventsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type BeanHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + bean?: InputMaybe; + bean_?: InputMaybe; + bean_contains?: InputMaybe; + bean_contains_nocase?: InputMaybe; + bean_ends_with?: InputMaybe; + bean_ends_with_nocase?: InputMaybe; + bean_gt?: InputMaybe; + bean_gte?: InputMaybe; + bean_in?: InputMaybe>; + bean_lt?: InputMaybe; + bean_lte?: InputMaybe; + bean_not?: InputMaybe; + bean_not_contains?: InputMaybe; + bean_not_contains_nocase?: InputMaybe; + bean_not_ends_with?: InputMaybe; + bean_not_ends_with_nocase?: InputMaybe; + bean_not_in?: InputMaybe>; + bean_not_starts_with?: InputMaybe; + bean_not_starts_with_nocase?: InputMaybe; + bean_starts_with?: InputMaybe; + bean_starts_with_nocase?: InputMaybe; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + crossEvents_?: InputMaybe; + crosses?: InputMaybe; + crosses_gt?: InputMaybe; + crosses_gte?: InputMaybe; + crosses_in?: InputMaybe>; + crosses_lt?: InputMaybe; + crosses_lte?: InputMaybe; + crosses_not?: InputMaybe; + crosses_not_in?: InputMaybe>; + deltaCrosses?: InputMaybe; + deltaCrosses_gt?: InputMaybe; + deltaCrosses_gte?: InputMaybe; + deltaCrosses_in?: InputMaybe>; + deltaCrosses_lt?: InputMaybe; + deltaCrosses_lte?: InputMaybe; + deltaCrosses_not?: InputMaybe; + deltaCrosses_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaVolume?: InputMaybe; + deltaVolumeUSD?: InputMaybe; + deltaVolumeUSD_gt?: InputMaybe; + deltaVolumeUSD_gte?: InputMaybe; + deltaVolumeUSD_in?: InputMaybe>; + deltaVolumeUSD_lt?: InputMaybe; + deltaVolumeUSD_lte?: InputMaybe; + deltaVolumeUSD_not?: InputMaybe; + deltaVolumeUSD_not_in?: InputMaybe>; + deltaVolume_gt?: InputMaybe; + deltaVolume_gte?: InputMaybe; + deltaVolume_in?: InputMaybe>; + deltaVolume_lt?: InputMaybe; + deltaVolume_lte?: InputMaybe; + deltaVolume_not?: InputMaybe; + deltaVolume_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + instDeltaB?: InputMaybe; + instDeltaB_gt?: InputMaybe; + instDeltaB_gte?: InputMaybe; + instDeltaB_in?: InputMaybe>; + instDeltaB_lt?: InputMaybe; + instDeltaB_lte?: InputMaybe; + instDeltaB_not?: InputMaybe; + instDeltaB_not_in?: InputMaybe>; + instPrice?: InputMaybe; + instPrice_gt?: InputMaybe; + instPrice_gte?: InputMaybe; + instPrice_in?: InputMaybe>; + instPrice_lt?: InputMaybe; + instPrice_lte?: InputMaybe; + instPrice_not?: InputMaybe; + instPrice_not_in?: InputMaybe>; + l2sr?: InputMaybe; + l2sr_gt?: InputMaybe; + l2sr_gte?: InputMaybe; + l2sr_in?: InputMaybe>; + l2sr_lt?: InputMaybe; + l2sr_lte?: InputMaybe; + l2sr_not?: InputMaybe; + l2sr_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + liquidityUSD?: InputMaybe; + liquidityUSD_gt?: InputMaybe; + liquidityUSD_gte?: InputMaybe; + liquidityUSD_in?: InputMaybe>; + liquidityUSD_lt?: InputMaybe; + liquidityUSD_lte?: InputMaybe; + liquidityUSD_not?: InputMaybe; + liquidityUSD_not_in?: InputMaybe>; + lockedBeans?: InputMaybe; + lockedBeans_gt?: InputMaybe; + lockedBeans_gte?: InputMaybe; + lockedBeans_in?: InputMaybe>; + lockedBeans_lt?: InputMaybe; + lockedBeans_lte?: InputMaybe; + lockedBeans_not?: InputMaybe; + lockedBeans_not_in?: InputMaybe>; + marketCap?: InputMaybe; + marketCap_gt?: InputMaybe; + marketCap_gte?: InputMaybe; + marketCap_in?: InputMaybe>; + marketCap_lt?: InputMaybe; + marketCap_lte?: InputMaybe; + marketCap_not?: InputMaybe; + marketCap_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + seasonNumber?: InputMaybe; + seasonNumber_gt?: InputMaybe; + seasonNumber_gte?: InputMaybe; + seasonNumber_in?: InputMaybe>; + seasonNumber_lt?: InputMaybe; + seasonNumber_lte?: InputMaybe; + seasonNumber_not?: InputMaybe; + seasonNumber_not_in?: InputMaybe>; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supplyInPegLP?: InputMaybe; + supplyInPegLP_gt?: InputMaybe; + supplyInPegLP_gte?: InputMaybe; + supplyInPegLP_in?: InputMaybe>; + supplyInPegLP_lt?: InputMaybe; + supplyInPegLP_lte?: InputMaybe; + supplyInPegLP_not?: InputMaybe; + supplyInPegLP_not_in?: InputMaybe>; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + twaBeanLiquidityUSD?: InputMaybe; + twaBeanLiquidityUSD_gt?: InputMaybe; + twaBeanLiquidityUSD_gte?: InputMaybe; + twaBeanLiquidityUSD_in?: InputMaybe>; + twaBeanLiquidityUSD_lt?: InputMaybe; + twaBeanLiquidityUSD_lte?: InputMaybe; + twaBeanLiquidityUSD_not?: InputMaybe; + twaBeanLiquidityUSD_not_in?: InputMaybe>; + twaDeltaB?: InputMaybe; + twaDeltaB_gt?: InputMaybe; + twaDeltaB_gte?: InputMaybe; + twaDeltaB_in?: InputMaybe>; + twaDeltaB_lt?: InputMaybe; + twaDeltaB_lte?: InputMaybe; + twaDeltaB_not?: InputMaybe; + twaDeltaB_not_in?: InputMaybe>; + twaLiquidityUSD?: InputMaybe; + twaLiquidityUSD_gt?: InputMaybe; + twaLiquidityUSD_gte?: InputMaybe; + twaLiquidityUSD_in?: InputMaybe>; + twaLiquidityUSD_lt?: InputMaybe; + twaLiquidityUSD_lte?: InputMaybe; + twaLiquidityUSD_not?: InputMaybe; + twaLiquidityUSD_not_in?: InputMaybe>; + twaNonBeanLiquidityUSD?: InputMaybe; + twaNonBeanLiquidityUSD_gt?: InputMaybe; + twaNonBeanLiquidityUSD_gte?: InputMaybe; + twaNonBeanLiquidityUSD_in?: InputMaybe>; + twaNonBeanLiquidityUSD_lt?: InputMaybe; + twaNonBeanLiquidityUSD_lte?: InputMaybe; + twaNonBeanLiquidityUSD_not?: InputMaybe; + twaNonBeanLiquidityUSD_not_in?: InputMaybe>; + twaPrice?: InputMaybe; + twaPrice_gt?: InputMaybe; + twaPrice_gte?: InputMaybe; + twaPrice_in?: InputMaybe>; + twaPrice_lt?: InputMaybe; + twaPrice_lte?: InputMaybe; + twaPrice_not?: InputMaybe; + twaPrice_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum BeanHourlySnapshot_OrderBy { + Bean = 'bean', + BeanCreatedTimestamp = 'bean__createdTimestamp', + BeanCrosses = 'bean__crosses', + BeanId = 'bean__id', + BeanLastCross = 'bean__lastCross', + BeanLastDailySnapshotDay = 'bean__lastDailySnapshotDay', + BeanLastHourlySnapshotSeason = 'bean__lastHourlySnapshotSeason', + BeanLastPrice = 'bean__lastPrice', + BeanLastUpdateBlockNumber = 'bean__lastUpdateBlockNumber', + BeanLastUpdateTimestamp = 'bean__lastUpdateTimestamp', + BeanLiquidityUsd = 'bean__liquidityUSD', + BeanLockedBeans = 'bean__lockedBeans', + BeanSupply = 'bean__supply', + BeanSupplyInPegLp = 'bean__supplyInPegLP', + BeanVolume = 'bean__volume', + BeanVolumeUsd = 'bean__volumeUSD', + CreatedTimestamp = 'createdTimestamp', + CrossEvents = 'crossEvents', + Crosses = 'crosses', + DeltaCrosses = 'deltaCrosses', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaVolume = 'deltaVolume', + DeltaVolumeUsd = 'deltaVolumeUSD', + Id = 'id', + InstDeltaB = 'instDeltaB', + InstPrice = 'instPrice', + L2sr = 'l2sr', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LiquidityUsd = 'liquidityUSD', + LockedBeans = 'lockedBeans', + MarketCap = 'marketCap', + Season = 'season', + SeasonNumber = 'seasonNumber', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + Supply = 'supply', + SupplyInPegLp = 'supplyInPegLP', + TwaBeanLiquidityUsd = 'twaBeanLiquidityUSD', + TwaDeltaB = 'twaDeltaB', + TwaLiquidityUsd = 'twaLiquidityUSD', + TwaNonBeanLiquidityUsd = 'twaNonBeanLiquidityUSD', + TwaPrice = 'twaPrice', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type Bean_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + crossEvents_?: InputMaybe; + crosses?: InputMaybe; + crosses_gt?: InputMaybe; + crosses_gte?: InputMaybe; + crosses_in?: InputMaybe>; + crosses_lt?: InputMaybe; + crosses_lte?: InputMaybe; + crosses_not?: InputMaybe; + crosses_not_in?: InputMaybe>; + currentSeason?: InputMaybe; + currentSeason_?: InputMaybe; + currentSeason_contains?: InputMaybe; + currentSeason_contains_nocase?: InputMaybe; + currentSeason_ends_with?: InputMaybe; + currentSeason_ends_with_nocase?: InputMaybe; + currentSeason_gt?: InputMaybe; + currentSeason_gte?: InputMaybe; + currentSeason_in?: InputMaybe>; + currentSeason_lt?: InputMaybe; + currentSeason_lte?: InputMaybe; + currentSeason_not?: InputMaybe; + currentSeason_not_contains?: InputMaybe; + currentSeason_not_contains_nocase?: InputMaybe; + currentSeason_not_ends_with?: InputMaybe; + currentSeason_not_ends_with_nocase?: InputMaybe; + currentSeason_not_in?: InputMaybe>; + currentSeason_not_starts_with?: InputMaybe; + currentSeason_not_starts_with_nocase?: InputMaybe; + currentSeason_starts_with?: InputMaybe; + currentSeason_starts_with_nocase?: InputMaybe; + dailySnapshots_?: InputMaybe; + dewhitelistedPools?: InputMaybe>; + dewhitelistedPools_?: InputMaybe; + dewhitelistedPools_contains?: InputMaybe>; + dewhitelistedPools_contains_nocase?: InputMaybe>; + dewhitelistedPools_not?: InputMaybe>; + dewhitelistedPools_not_contains?: InputMaybe>; + dewhitelistedPools_not_contains_nocase?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastCross?: InputMaybe; + lastCross_gt?: InputMaybe; + lastCross_gte?: InputMaybe; + lastCross_in?: InputMaybe>; + lastCross_lt?: InputMaybe; + lastCross_lte?: InputMaybe; + lastCross_not?: InputMaybe; + lastCross_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + lastPrice?: InputMaybe; + lastPrice_gt?: InputMaybe; + lastPrice_gte?: InputMaybe; + lastPrice_in?: InputMaybe>; + lastPrice_lt?: InputMaybe; + lastPrice_lte?: InputMaybe; + lastPrice_not?: InputMaybe; + lastPrice_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + liquidityUSD?: InputMaybe; + liquidityUSD_gt?: InputMaybe; + liquidityUSD_gte?: InputMaybe; + liquidityUSD_in?: InputMaybe>; + liquidityUSD_lt?: InputMaybe; + liquidityUSD_lte?: InputMaybe; + liquidityUSD_not?: InputMaybe; + liquidityUSD_not_in?: InputMaybe>; + lockedBeans?: InputMaybe; + lockedBeans_gt?: InputMaybe; + lockedBeans_gte?: InputMaybe; + lockedBeans_in?: InputMaybe>; + lockedBeans_lt?: InputMaybe; + lockedBeans_lte?: InputMaybe; + lockedBeans_not?: InputMaybe; + lockedBeans_not_in?: InputMaybe>; + or?: InputMaybe>>; + pools?: InputMaybe>; + pools_?: InputMaybe; + pools_contains?: InputMaybe>; + pools_contains_nocase?: InputMaybe>; + pools_not?: InputMaybe>; + pools_not_contains?: InputMaybe>; + pools_not_contains_nocase?: InputMaybe>; + supply?: InputMaybe; + supplyInPegLP?: InputMaybe; + supplyInPegLP_gt?: InputMaybe; + supplyInPegLP_gte?: InputMaybe; + supplyInPegLP_in?: InputMaybe>; + supplyInPegLP_lt?: InputMaybe; + supplyInPegLP_lte?: InputMaybe; + supplyInPegLP_not?: InputMaybe; + supplyInPegLP_not_in?: InputMaybe>; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum Bean_OrderBy { + CreatedTimestamp = 'createdTimestamp', + CrossEvents = 'crossEvents', + Crosses = 'crosses', + CurrentSeason = 'currentSeason', + CurrentSeasonId = 'currentSeason__id', + CurrentSeasonSeason = 'currentSeason__season', + CurrentSeasonTimestamp = 'currentSeason__timestamp', + DailySnapshots = 'dailySnapshots', + DewhitelistedPools = 'dewhitelistedPools', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastCross = 'lastCross', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + LastPrice = 'lastPrice', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LiquidityUsd = 'liquidityUSD', + LockedBeans = 'lockedBeans', + Pools = 'pools', + Supply = 'supply', + SupplyInPegLp = 'supplyInPegLP', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type BlockChangedFilter = { + number_gte: Scalars['Int']['input']; +}; + +export type Block_Height = { + hash?: InputMaybe; + number?: InputMaybe; + number_gte?: InputMaybe; +}; + +export type FarmerBalance = { + __typename?: 'FarmerBalance'; + dailySnapshots: Array; + /** Amount of this token in farm balances */ + farmBalance: Scalars['BigInt']['output']; + /** Farmer address */ + farmer: Scalars['Bytes']['output']; + hourlySnapshots: Array; + /** {Farmer address}-{Token address} */ + id: Scalars['ID']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Token address */ + token: Scalars['Bytes']['output']; + /** Amount of this token held by the farmer */ + totalBalance: Scalars['BigInt']['output']; + /** Amount of this token in the wallet */ + walletBalance: Scalars['BigInt']['output']; +}; + + +export type FarmerBalanceDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerBalanceHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type FarmerBalanceDailySnapshot = { + __typename?: 'FarmerBalanceDailySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** Unix day */ + day: Scalars['Int']['output']; + /** Delta of farmBalance */ + deltaFarmBalance: Scalars['BigInt']['output']; + /** Delta of totalBalance */ + deltaTotalBalance: Scalars['BigInt']['output']; + /** Delta of walletBalance */ + deltaWalletBalance: Scalars['BigInt']['output']; + /** Amount of this token in farm balances */ + farmBalance: Scalars['BigInt']['output']; + farmerBalance: FarmerBalance; + /** {FarmerBalance ID}-{Unix day} */ + id: Scalars['ID']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + season: Season; + /** Amount of this token held by the farmer */ + totalBalance: Scalars['BigInt']['output']; + /** Amount of this token in the wallet */ + walletBalance: Scalars['BigInt']['output']; +}; + +export type FarmerBalanceDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + day?: InputMaybe; + day_gt?: InputMaybe; + day_gte?: InputMaybe; + day_in?: InputMaybe>; + day_lt?: InputMaybe; + day_lte?: InputMaybe; + day_not?: InputMaybe; + day_not_in?: InputMaybe>; + deltaFarmBalance?: InputMaybe; + deltaFarmBalance_gt?: InputMaybe; + deltaFarmBalance_gte?: InputMaybe; + deltaFarmBalance_in?: InputMaybe>; + deltaFarmBalance_lt?: InputMaybe; + deltaFarmBalance_lte?: InputMaybe; + deltaFarmBalance_not?: InputMaybe; + deltaFarmBalance_not_in?: InputMaybe>; + deltaTotalBalance?: InputMaybe; + deltaTotalBalance_gt?: InputMaybe; + deltaTotalBalance_gte?: InputMaybe; + deltaTotalBalance_in?: InputMaybe>; + deltaTotalBalance_lt?: InputMaybe; + deltaTotalBalance_lte?: InputMaybe; + deltaTotalBalance_not?: InputMaybe; + deltaTotalBalance_not_in?: InputMaybe>; + deltaWalletBalance?: InputMaybe; + deltaWalletBalance_gt?: InputMaybe; + deltaWalletBalance_gte?: InputMaybe; + deltaWalletBalance_in?: InputMaybe>; + deltaWalletBalance_lt?: InputMaybe; + deltaWalletBalance_lte?: InputMaybe; + deltaWalletBalance_not?: InputMaybe; + deltaWalletBalance_not_in?: InputMaybe>; + farmBalance?: InputMaybe; + farmBalance_gt?: InputMaybe; + farmBalance_gte?: InputMaybe; + farmBalance_in?: InputMaybe>; + farmBalance_lt?: InputMaybe; + farmBalance_lte?: InputMaybe; + farmBalance_not?: InputMaybe; + farmBalance_not_in?: InputMaybe>; + farmerBalance?: InputMaybe; + farmerBalance_?: InputMaybe; + farmerBalance_contains?: InputMaybe; + farmerBalance_contains_nocase?: InputMaybe; + farmerBalance_ends_with?: InputMaybe; + farmerBalance_ends_with_nocase?: InputMaybe; + farmerBalance_gt?: InputMaybe; + farmerBalance_gte?: InputMaybe; + farmerBalance_in?: InputMaybe>; + farmerBalance_lt?: InputMaybe; + farmerBalance_lte?: InputMaybe; + farmerBalance_not?: InputMaybe; + farmerBalance_not_contains?: InputMaybe; + farmerBalance_not_contains_nocase?: InputMaybe; + farmerBalance_not_ends_with?: InputMaybe; + farmerBalance_not_ends_with_nocase?: InputMaybe; + farmerBalance_not_in?: InputMaybe>; + farmerBalance_not_starts_with?: InputMaybe; + farmerBalance_not_starts_with_nocase?: InputMaybe; + farmerBalance_starts_with?: InputMaybe; + farmerBalance_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + totalBalance?: InputMaybe; + totalBalance_gt?: InputMaybe; + totalBalance_gte?: InputMaybe; + totalBalance_in?: InputMaybe>; + totalBalance_lt?: InputMaybe; + totalBalance_lte?: InputMaybe; + totalBalance_not?: InputMaybe; + totalBalance_not_in?: InputMaybe>; + walletBalance?: InputMaybe; + walletBalance_gt?: InputMaybe; + walletBalance_gte?: InputMaybe; + walletBalance_in?: InputMaybe>; + walletBalance_lt?: InputMaybe; + walletBalance_lte?: InputMaybe; + walletBalance_not?: InputMaybe; + walletBalance_not_in?: InputMaybe>; +}; + +export enum FarmerBalanceDailySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + Day = 'day', + DeltaFarmBalance = 'deltaFarmBalance', + DeltaTotalBalance = 'deltaTotalBalance', + DeltaWalletBalance = 'deltaWalletBalance', + FarmBalance = 'farmBalance', + FarmerBalance = 'farmerBalance', + FarmerBalanceFarmBalance = 'farmerBalance__farmBalance', + FarmerBalanceFarmer = 'farmerBalance__farmer', + FarmerBalanceId = 'farmerBalance__id', + FarmerBalanceLastDailySnapshotDay = 'farmerBalance__lastDailySnapshotDay', + FarmerBalanceLastHourlySnapshotSeason = 'farmerBalance__lastHourlySnapshotSeason', + FarmerBalanceToken = 'farmerBalance__token', + FarmerBalanceTotalBalance = 'farmerBalance__totalBalance', + FarmerBalanceWalletBalance = 'farmerBalance__walletBalance', + Id = 'id', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TotalBalance = 'totalBalance', + WalletBalance = 'walletBalance' +} + +export type FarmerBalanceHourlySnapshot = { + __typename?: 'FarmerBalanceHourlySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** Delta of farmBalance */ + deltaFarmBalance: Scalars['BigInt']['output']; + /** Delta of totalBalance */ + deltaTotalBalance: Scalars['BigInt']['output']; + /** Delta of walletBalance */ + deltaWalletBalance: Scalars['BigInt']['output']; + /** Amount of this token in farm balances */ + farmBalance: Scalars['BigInt']['output']; + farmerBalance: FarmerBalance; + /** {FarmerBalance ID}-{Season} */ + id: Scalars['ID']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + season: Season; + seasonNumber: Scalars['Int']['output']; + /** Amount of this token held by the farmer */ + totalBalance: Scalars['BigInt']['output']; + /** Amount of this token in the wallet */ + walletBalance: Scalars['BigInt']['output']; +}; + +export type FarmerBalanceHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + deltaFarmBalance?: InputMaybe; + deltaFarmBalance_gt?: InputMaybe; + deltaFarmBalance_gte?: InputMaybe; + deltaFarmBalance_in?: InputMaybe>; + deltaFarmBalance_lt?: InputMaybe; + deltaFarmBalance_lte?: InputMaybe; + deltaFarmBalance_not?: InputMaybe; + deltaFarmBalance_not_in?: InputMaybe>; + deltaTotalBalance?: InputMaybe; + deltaTotalBalance_gt?: InputMaybe; + deltaTotalBalance_gte?: InputMaybe; + deltaTotalBalance_in?: InputMaybe>; + deltaTotalBalance_lt?: InputMaybe; + deltaTotalBalance_lte?: InputMaybe; + deltaTotalBalance_not?: InputMaybe; + deltaTotalBalance_not_in?: InputMaybe>; + deltaWalletBalance?: InputMaybe; + deltaWalletBalance_gt?: InputMaybe; + deltaWalletBalance_gte?: InputMaybe; + deltaWalletBalance_in?: InputMaybe>; + deltaWalletBalance_lt?: InputMaybe; + deltaWalletBalance_lte?: InputMaybe; + deltaWalletBalance_not?: InputMaybe; + deltaWalletBalance_not_in?: InputMaybe>; + farmBalance?: InputMaybe; + farmBalance_gt?: InputMaybe; + farmBalance_gte?: InputMaybe; + farmBalance_in?: InputMaybe>; + farmBalance_lt?: InputMaybe; + farmBalance_lte?: InputMaybe; + farmBalance_not?: InputMaybe; + farmBalance_not_in?: InputMaybe>; + farmerBalance?: InputMaybe; + farmerBalance_?: InputMaybe; + farmerBalance_contains?: InputMaybe; + farmerBalance_contains_nocase?: InputMaybe; + farmerBalance_ends_with?: InputMaybe; + farmerBalance_ends_with_nocase?: InputMaybe; + farmerBalance_gt?: InputMaybe; + farmerBalance_gte?: InputMaybe; + farmerBalance_in?: InputMaybe>; + farmerBalance_lt?: InputMaybe; + farmerBalance_lte?: InputMaybe; + farmerBalance_not?: InputMaybe; + farmerBalance_not_contains?: InputMaybe; + farmerBalance_not_contains_nocase?: InputMaybe; + farmerBalance_not_ends_with?: InputMaybe; + farmerBalance_not_ends_with_nocase?: InputMaybe; + farmerBalance_not_in?: InputMaybe>; + farmerBalance_not_starts_with?: InputMaybe; + farmerBalance_not_starts_with_nocase?: InputMaybe; + farmerBalance_starts_with?: InputMaybe; + farmerBalance_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + seasonNumber?: InputMaybe; + seasonNumber_gt?: InputMaybe; + seasonNumber_gte?: InputMaybe; + seasonNumber_in?: InputMaybe>; + seasonNumber_lt?: InputMaybe; + seasonNumber_lte?: InputMaybe; + seasonNumber_not?: InputMaybe; + seasonNumber_not_in?: InputMaybe>; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + totalBalance?: InputMaybe; + totalBalance_gt?: InputMaybe; + totalBalance_gte?: InputMaybe; + totalBalance_in?: InputMaybe>; + totalBalance_lt?: InputMaybe; + totalBalance_lte?: InputMaybe; + totalBalance_not?: InputMaybe; + totalBalance_not_in?: InputMaybe>; + walletBalance?: InputMaybe; + walletBalance_gt?: InputMaybe; + walletBalance_gte?: InputMaybe; + walletBalance_in?: InputMaybe>; + walletBalance_lt?: InputMaybe; + walletBalance_lte?: InputMaybe; + walletBalance_not?: InputMaybe; + walletBalance_not_in?: InputMaybe>; +}; + +export enum FarmerBalanceHourlySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + DeltaFarmBalance = 'deltaFarmBalance', + DeltaTotalBalance = 'deltaTotalBalance', + DeltaWalletBalance = 'deltaWalletBalance', + FarmBalance = 'farmBalance', + FarmerBalance = 'farmerBalance', + FarmerBalanceFarmBalance = 'farmerBalance__farmBalance', + FarmerBalanceFarmer = 'farmerBalance__farmer', + FarmerBalanceId = 'farmerBalance__id', + FarmerBalanceLastDailySnapshotDay = 'farmerBalance__lastDailySnapshotDay', + FarmerBalanceLastHourlySnapshotSeason = 'farmerBalance__lastHourlySnapshotSeason', + FarmerBalanceToken = 'farmerBalance__token', + FarmerBalanceTotalBalance = 'farmerBalance__totalBalance', + FarmerBalanceWalletBalance = 'farmerBalance__walletBalance', + Id = 'id', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + Season = 'season', + SeasonNumber = 'seasonNumber', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TotalBalance = 'totalBalance', + WalletBalance = 'walletBalance' +} + +export type FarmerBalance_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + dailySnapshots_?: InputMaybe; + farmBalance?: InputMaybe; + farmBalance_gt?: InputMaybe; + farmBalance_gte?: InputMaybe; + farmBalance_in?: InputMaybe>; + farmBalance_lt?: InputMaybe; + farmBalance_lte?: InputMaybe; + farmBalance_not?: InputMaybe; + farmBalance_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; + totalBalance?: InputMaybe; + totalBalance_gt?: InputMaybe; + totalBalance_gte?: InputMaybe; + totalBalance_in?: InputMaybe>; + totalBalance_lt?: InputMaybe; + totalBalance_lte?: InputMaybe; + totalBalance_not?: InputMaybe; + totalBalance_not_in?: InputMaybe>; + walletBalance?: InputMaybe; + walletBalance_gt?: InputMaybe; + walletBalance_gte?: InputMaybe; + walletBalance_in?: InputMaybe>; + walletBalance_lt?: InputMaybe; + walletBalance_lte?: InputMaybe; + walletBalance_not?: InputMaybe; + walletBalance_not_in?: InputMaybe>; +}; + +export enum FarmerBalance_OrderBy { + DailySnapshots = 'dailySnapshots', + FarmBalance = 'farmBalance', + Farmer = 'farmer', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + Token = 'token', + TotalBalance = 'totalBalance', + WalletBalance = 'walletBalance' +} + +/** Defines the order direction, either ascending or descending */ +export enum OrderDirection { + Asc = 'asc', + Desc = 'desc' +} + +export type Pool = { + __typename?: 'Pool'; + /** The Bean token that is in this pool */ + bean: Bean; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** Peg cross references */ + crossEvents: Array; + /** Cumulative number of peg crosses in this Pool */ + crosses: Scalars['Int']['output']; + /** Current Beanstalk season */ + currentSeason: Season; + dailySnapshots: Array; + hourlySnapshots: Array; + /** Pool contract address */ + id: Scalars['Bytes']['output']; + /** Last timestamp a peg cross occurred */ + lastCross: Scalars['BigInt']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** * The last recorded bean price in this pool. Updated upon a trade, a peg cross, or sunrise. May not be useful for external use as accuracy is not guaranteed. */ + lastPrice: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Total liquidity in this pool */ + liquidityUSD: Scalars['BigDecimal']['output']; + /** Token reserves in the pool */ + reserves: Array; + /** Tokens in this pool */ + tokens: Array; + /** (DEPRECATED): See basin subgraph instead // Pool exchange volume in bean */ + volume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Pool exchange volume in USD */ + volumeUSD: Scalars['BigDecimal']['output']; +}; + + +export type PoolCrossEventsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolTokensArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PoolCross = { + __typename?: 'PoolCross'; + /** Whether this cross was above or below peg */ + above: Scalars['Boolean']['output']; + /** Block number when this cross was identified */ + blockNumber: Scalars['BigInt']['output']; + /** Cross number (int) */ + cross: Scalars['Int']['output']; + /** {Pool Address}-{Cross Number} */ + id: Scalars['ID']['output']; + /** The Pool in which this cross occurred */ + pool: Pool; + /** Daily snapshot for this cross */ + poolDailySnapshot: PoolDailySnapshot; + /** Hourly snapshot for this cross */ + poolHourlySnapshot: PoolHourlySnapshot; + /** The price of bean in this pool at the time this cross occurred */ + price: Scalars['BigDecimal']['output']; + /** Time elapsed since the previous cross in this pool */ + timeSinceLastCross: Scalars['BigInt']['output']; + /** Timestamp when this cross was identified */ + timestamp: Scalars['BigInt']['output']; +}; + +export type PoolCross_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + above?: InputMaybe; + above_in?: InputMaybe>; + above_not?: InputMaybe; + above_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + cross?: InputMaybe; + cross_gt?: InputMaybe; + cross_gte?: InputMaybe; + cross_in?: InputMaybe>; + cross_lt?: InputMaybe; + cross_lte?: InputMaybe; + cross_not?: InputMaybe; + cross_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + pool?: InputMaybe; + poolDailySnapshot?: InputMaybe; + poolDailySnapshot_?: InputMaybe; + poolDailySnapshot_contains?: InputMaybe; + poolDailySnapshot_contains_nocase?: InputMaybe; + poolDailySnapshot_ends_with?: InputMaybe; + poolDailySnapshot_ends_with_nocase?: InputMaybe; + poolDailySnapshot_gt?: InputMaybe; + poolDailySnapshot_gte?: InputMaybe; + poolDailySnapshot_in?: InputMaybe>; + poolDailySnapshot_lt?: InputMaybe; + poolDailySnapshot_lte?: InputMaybe; + poolDailySnapshot_not?: InputMaybe; + poolDailySnapshot_not_contains?: InputMaybe; + poolDailySnapshot_not_contains_nocase?: InputMaybe; + poolDailySnapshot_not_ends_with?: InputMaybe; + poolDailySnapshot_not_ends_with_nocase?: InputMaybe; + poolDailySnapshot_not_in?: InputMaybe>; + poolDailySnapshot_not_starts_with?: InputMaybe; + poolDailySnapshot_not_starts_with_nocase?: InputMaybe; + poolDailySnapshot_starts_with?: InputMaybe; + poolDailySnapshot_starts_with_nocase?: InputMaybe; + poolHourlySnapshot?: InputMaybe; + poolHourlySnapshot_?: InputMaybe; + poolHourlySnapshot_contains?: InputMaybe; + poolHourlySnapshot_contains_nocase?: InputMaybe; + poolHourlySnapshot_ends_with?: InputMaybe; + poolHourlySnapshot_ends_with_nocase?: InputMaybe; + poolHourlySnapshot_gt?: InputMaybe; + poolHourlySnapshot_gte?: InputMaybe; + poolHourlySnapshot_in?: InputMaybe>; + poolHourlySnapshot_lt?: InputMaybe; + poolHourlySnapshot_lte?: InputMaybe; + poolHourlySnapshot_not?: InputMaybe; + poolHourlySnapshot_not_contains?: InputMaybe; + poolHourlySnapshot_not_contains_nocase?: InputMaybe; + poolHourlySnapshot_not_ends_with?: InputMaybe; + poolHourlySnapshot_not_ends_with_nocase?: InputMaybe; + poolHourlySnapshot_not_in?: InputMaybe>; + poolHourlySnapshot_not_starts_with?: InputMaybe; + poolHourlySnapshot_not_starts_with_nocase?: InputMaybe; + poolHourlySnapshot_starts_with?: InputMaybe; + poolHourlySnapshot_starts_with_nocase?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + price?: InputMaybe; + price_gt?: InputMaybe; + price_gte?: InputMaybe; + price_in?: InputMaybe>; + price_lt?: InputMaybe; + price_lte?: InputMaybe; + price_not?: InputMaybe; + price_not_in?: InputMaybe>; + timeSinceLastCross?: InputMaybe; + timeSinceLastCross_gt?: InputMaybe; + timeSinceLastCross_gte?: InputMaybe; + timeSinceLastCross_in?: InputMaybe>; + timeSinceLastCross_lt?: InputMaybe; + timeSinceLastCross_lte?: InputMaybe; + timeSinceLastCross_not?: InputMaybe; + timeSinceLastCross_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; +}; + +export enum PoolCross_OrderBy { + Above = 'above', + BlockNumber = 'blockNumber', + Cross = 'cross', + Id = 'id', + Pool = 'pool', + PoolDailySnapshot = 'poolDailySnapshot', + PoolDailySnapshotCreatedTimestamp = 'poolDailySnapshot__createdTimestamp', + PoolDailySnapshotCrosses = 'poolDailySnapshot__crosses', + PoolDailySnapshotDay = 'poolDailySnapshot__day', + PoolDailySnapshotDeltaCrosses = 'poolDailySnapshot__deltaCrosses', + PoolDailySnapshotDeltaLiquidityUsd = 'poolDailySnapshot__deltaLiquidityUSD', + PoolDailySnapshotDeltaVolume = 'poolDailySnapshot__deltaVolume', + PoolDailySnapshotDeltaVolumeUsd = 'poolDailySnapshot__deltaVolumeUSD', + PoolDailySnapshotId = 'poolDailySnapshot__id', + PoolDailySnapshotInstDeltaB = 'poolDailySnapshot__instDeltaB', + PoolDailySnapshotInstPrice = 'poolDailySnapshot__instPrice', + PoolDailySnapshotLastUpdateBlockNumber = 'poolDailySnapshot__lastUpdateBlockNumber', + PoolDailySnapshotLastUpdateTimestamp = 'poolDailySnapshot__lastUpdateTimestamp', + PoolDailySnapshotLiquidityUsd = 'poolDailySnapshot__liquidityUSD', + PoolDailySnapshotTwaBeanLiquidityUsd = 'poolDailySnapshot__twaBeanLiquidityUSD', + PoolDailySnapshotTwaDeltaB = 'poolDailySnapshot__twaDeltaB', + PoolDailySnapshotTwaLiquidityUsd = 'poolDailySnapshot__twaLiquidityUSD', + PoolDailySnapshotTwaNonBeanLiquidityUsd = 'poolDailySnapshot__twaNonBeanLiquidityUSD', + PoolDailySnapshotTwaPrice = 'poolDailySnapshot__twaPrice', + PoolDailySnapshotTwaToken2Price = 'poolDailySnapshot__twaToken2Price', + PoolDailySnapshotVolume = 'poolDailySnapshot__volume', + PoolDailySnapshotVolumeUsd = 'poolDailySnapshot__volumeUSD', + PoolHourlySnapshot = 'poolHourlySnapshot', + PoolHourlySnapshotCreatedTimestamp = 'poolHourlySnapshot__createdTimestamp', + PoolHourlySnapshotCrosses = 'poolHourlySnapshot__crosses', + PoolHourlySnapshotDeltaCrosses = 'poolHourlySnapshot__deltaCrosses', + PoolHourlySnapshotDeltaLiquidityUsd = 'poolHourlySnapshot__deltaLiquidityUSD', + PoolHourlySnapshotDeltaVolume = 'poolHourlySnapshot__deltaVolume', + PoolHourlySnapshotDeltaVolumeUsd = 'poolHourlySnapshot__deltaVolumeUSD', + PoolHourlySnapshotId = 'poolHourlySnapshot__id', + PoolHourlySnapshotInstDeltaB = 'poolHourlySnapshot__instDeltaB', + PoolHourlySnapshotInstPrice = 'poolHourlySnapshot__instPrice', + PoolHourlySnapshotLastUpdateBlockNumber = 'poolHourlySnapshot__lastUpdateBlockNumber', + PoolHourlySnapshotLastUpdateTimestamp = 'poolHourlySnapshot__lastUpdateTimestamp', + PoolHourlySnapshotLiquidityUsd = 'poolHourlySnapshot__liquidityUSD', + PoolHourlySnapshotSeasonNumber = 'poolHourlySnapshot__seasonNumber', + PoolHourlySnapshotTwaBeanLiquidityUsd = 'poolHourlySnapshot__twaBeanLiquidityUSD', + PoolHourlySnapshotTwaDeltaB = 'poolHourlySnapshot__twaDeltaB', + PoolHourlySnapshotTwaLiquidityUsd = 'poolHourlySnapshot__twaLiquidityUSD', + PoolHourlySnapshotTwaNonBeanLiquidityUsd = 'poolHourlySnapshot__twaNonBeanLiquidityUSD', + PoolHourlySnapshotTwaPrice = 'poolHourlySnapshot__twaPrice', + PoolHourlySnapshotTwaToken2Price = 'poolHourlySnapshot__twaToken2Price', + PoolHourlySnapshotVolume = 'poolHourlySnapshot__volume', + PoolHourlySnapshotVolumeUsd = 'poolHourlySnapshot__volumeUSD', + PoolCreatedTimestamp = 'pool__createdTimestamp', + PoolCrosses = 'pool__crosses', + PoolId = 'pool__id', + PoolLastCross = 'pool__lastCross', + PoolLastDailySnapshotDay = 'pool__lastDailySnapshotDay', + PoolLastHourlySnapshotSeason = 'pool__lastHourlySnapshotSeason', + PoolLastPrice = 'pool__lastPrice', + PoolLastUpdateBlockNumber = 'pool__lastUpdateBlockNumber', + PoolLastUpdateTimestamp = 'pool__lastUpdateTimestamp', + PoolLiquidityUsd = 'pool__liquidityUSD', + PoolVolume = 'pool__volume', + PoolVolumeUsd = 'pool__volumeUSD', + Price = 'price', + TimeSinceLastCross = 'timeSinceLastCross', + Timestamp = 'timestamp' +} + +export type PoolDailySnapshot = { + __typename?: 'PoolDailySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All crosses occurred in the same time period as this snapshot */ + crossEvents: Array; + /** Cumulative number of peg crosses in this Pool */ + crosses: Scalars['Int']['output']; + /** Unix day */ + day: Scalars['Int']['output']; + /** Delta of crosses */ + deltaCrosses: Scalars['Int']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of liquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Delta of reserves */ + deltaReserves: Array; + /** (DEPRECATED): See basin subgraph instead // Delta of volume */ + deltaVolume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of volumeUSD */ + deltaVolumeUSD: Scalars['BigDecimal']['output']; + /** {Pool ID}-{Unix day} */ + id: Scalars['ID']['output']; + /** Instantaneous deltaB at the start of the season */ + instDeltaB: Scalars['BigDecimal']['output']; + /** Bean price in this pool at the end of the previous season */ + instPrice: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Total liquidity in this pool */ + liquidityUSD: Scalars['BigDecimal']['output']; + pool: Pool; + /** Token reserves in the pool */ + reserves: Array; + season: Season; + /** Time-Weighted average bean USD liquidity in this pool over the previous season, using the price of bean in this pool only */ + twaBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted deltaB over the previous season */ + twaDeltaB: Scalars['BigDecimal']['output']; + /** Time-Weighted average total USD liquidity in this pool over the previous season */ + twaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted average non-bean USD liquidity in this pool over the previous season */ + twaNonBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted bean price in this pool over the previous season */ + twaPrice: Scalars['BigDecimal']['output']; + /** Time-Weighted average reserves in this pool over the previous season */ + twaReserves: Array; + /** Time-Weighted price of the non-bean token in the pool over the previous season */ + twaToken2Price: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Pool exchange volume in bean */ + volume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Pool exchange volume in USD */ + volumeUSD: Scalars['BigDecimal']['output']; +}; + + +export type PoolDailySnapshotCrossEventsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PoolDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + crossEvents_?: InputMaybe; + crosses?: InputMaybe; + crosses_gt?: InputMaybe; + crosses_gte?: InputMaybe; + crosses_in?: InputMaybe>; + crosses_lt?: InputMaybe; + crosses_lte?: InputMaybe; + crosses_not?: InputMaybe; + crosses_not_in?: InputMaybe>; + day?: InputMaybe; + day_gt?: InputMaybe; + day_gte?: InputMaybe; + day_in?: InputMaybe>; + day_lt?: InputMaybe; + day_lte?: InputMaybe; + day_not?: InputMaybe; + day_not_in?: InputMaybe>; + deltaCrosses?: InputMaybe; + deltaCrosses_gt?: InputMaybe; + deltaCrosses_gte?: InputMaybe; + deltaCrosses_in?: InputMaybe>; + deltaCrosses_lt?: InputMaybe; + deltaCrosses_lte?: InputMaybe; + deltaCrosses_not?: InputMaybe; + deltaCrosses_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaReserves?: InputMaybe>; + deltaReserves_contains?: InputMaybe>; + deltaReserves_contains_nocase?: InputMaybe>; + deltaReserves_not?: InputMaybe>; + deltaReserves_not_contains?: InputMaybe>; + deltaReserves_not_contains_nocase?: InputMaybe>; + deltaVolume?: InputMaybe; + deltaVolumeUSD?: InputMaybe; + deltaVolumeUSD_gt?: InputMaybe; + deltaVolumeUSD_gte?: InputMaybe; + deltaVolumeUSD_in?: InputMaybe>; + deltaVolumeUSD_lt?: InputMaybe; + deltaVolumeUSD_lte?: InputMaybe; + deltaVolumeUSD_not?: InputMaybe; + deltaVolumeUSD_not_in?: InputMaybe>; + deltaVolume_gt?: InputMaybe; + deltaVolume_gte?: InputMaybe; + deltaVolume_in?: InputMaybe>; + deltaVolume_lt?: InputMaybe; + deltaVolume_lte?: InputMaybe; + deltaVolume_not?: InputMaybe; + deltaVolume_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + instDeltaB?: InputMaybe; + instDeltaB_gt?: InputMaybe; + instDeltaB_gte?: InputMaybe; + instDeltaB_in?: InputMaybe>; + instDeltaB_lt?: InputMaybe; + instDeltaB_lte?: InputMaybe; + instDeltaB_not?: InputMaybe; + instDeltaB_not_in?: InputMaybe>; + instPrice?: InputMaybe; + instPrice_gt?: InputMaybe; + instPrice_gte?: InputMaybe; + instPrice_in?: InputMaybe>; + instPrice_lt?: InputMaybe; + instPrice_lte?: InputMaybe; + instPrice_not?: InputMaybe; + instPrice_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + liquidityUSD?: InputMaybe; + liquidityUSD_gt?: InputMaybe; + liquidityUSD_gte?: InputMaybe; + liquidityUSD_in?: InputMaybe>; + liquidityUSD_lt?: InputMaybe; + liquidityUSD_lte?: InputMaybe; + liquidityUSD_not?: InputMaybe; + liquidityUSD_not_in?: InputMaybe>; + or?: InputMaybe>>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + reserves?: InputMaybe>; + reserves_contains?: InputMaybe>; + reserves_contains_nocase?: InputMaybe>; + reserves_not?: InputMaybe>; + reserves_not_contains?: InputMaybe>; + reserves_not_contains_nocase?: InputMaybe>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + twaBeanLiquidityUSD?: InputMaybe; + twaBeanLiquidityUSD_gt?: InputMaybe; + twaBeanLiquidityUSD_gte?: InputMaybe; + twaBeanLiquidityUSD_in?: InputMaybe>; + twaBeanLiquidityUSD_lt?: InputMaybe; + twaBeanLiquidityUSD_lte?: InputMaybe; + twaBeanLiquidityUSD_not?: InputMaybe; + twaBeanLiquidityUSD_not_in?: InputMaybe>; + twaDeltaB?: InputMaybe; + twaDeltaB_gt?: InputMaybe; + twaDeltaB_gte?: InputMaybe; + twaDeltaB_in?: InputMaybe>; + twaDeltaB_lt?: InputMaybe; + twaDeltaB_lte?: InputMaybe; + twaDeltaB_not?: InputMaybe; + twaDeltaB_not_in?: InputMaybe>; + twaLiquidityUSD?: InputMaybe; + twaLiquidityUSD_gt?: InputMaybe; + twaLiquidityUSD_gte?: InputMaybe; + twaLiquidityUSD_in?: InputMaybe>; + twaLiquidityUSD_lt?: InputMaybe; + twaLiquidityUSD_lte?: InputMaybe; + twaLiquidityUSD_not?: InputMaybe; + twaLiquidityUSD_not_in?: InputMaybe>; + twaNonBeanLiquidityUSD?: InputMaybe; + twaNonBeanLiquidityUSD_gt?: InputMaybe; + twaNonBeanLiquidityUSD_gte?: InputMaybe; + twaNonBeanLiquidityUSD_in?: InputMaybe>; + twaNonBeanLiquidityUSD_lt?: InputMaybe; + twaNonBeanLiquidityUSD_lte?: InputMaybe; + twaNonBeanLiquidityUSD_not?: InputMaybe; + twaNonBeanLiquidityUSD_not_in?: InputMaybe>; + twaPrice?: InputMaybe; + twaPrice_gt?: InputMaybe; + twaPrice_gte?: InputMaybe; + twaPrice_in?: InputMaybe>; + twaPrice_lt?: InputMaybe; + twaPrice_lte?: InputMaybe; + twaPrice_not?: InputMaybe; + twaPrice_not_in?: InputMaybe>; + twaReserves?: InputMaybe>; + twaReserves_contains?: InputMaybe>; + twaReserves_contains_nocase?: InputMaybe>; + twaReserves_not?: InputMaybe>; + twaReserves_not_contains?: InputMaybe>; + twaReserves_not_contains_nocase?: InputMaybe>; + twaToken2Price?: InputMaybe; + twaToken2Price_gt?: InputMaybe; + twaToken2Price_gte?: InputMaybe; + twaToken2Price_in?: InputMaybe>; + twaToken2Price_lt?: InputMaybe; + twaToken2Price_lte?: InputMaybe; + twaToken2Price_not?: InputMaybe; + twaToken2Price_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum PoolDailySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + CrossEvents = 'crossEvents', + Crosses = 'crosses', + Day = 'day', + DeltaCrosses = 'deltaCrosses', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaReserves = 'deltaReserves', + DeltaVolume = 'deltaVolume', + DeltaVolumeUsd = 'deltaVolumeUSD', + Id = 'id', + InstDeltaB = 'instDeltaB', + InstPrice = 'instPrice', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LiquidityUsd = 'liquidityUSD', + Pool = 'pool', + PoolCreatedTimestamp = 'pool__createdTimestamp', + PoolCrosses = 'pool__crosses', + PoolId = 'pool__id', + PoolLastCross = 'pool__lastCross', + PoolLastDailySnapshotDay = 'pool__lastDailySnapshotDay', + PoolLastHourlySnapshotSeason = 'pool__lastHourlySnapshotSeason', + PoolLastPrice = 'pool__lastPrice', + PoolLastUpdateBlockNumber = 'pool__lastUpdateBlockNumber', + PoolLastUpdateTimestamp = 'pool__lastUpdateTimestamp', + PoolLiquidityUsd = 'pool__liquidityUSD', + PoolVolume = 'pool__volume', + PoolVolumeUsd = 'pool__volumeUSD', + Reserves = 'reserves', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TwaBeanLiquidityUsd = 'twaBeanLiquidityUSD', + TwaDeltaB = 'twaDeltaB', + TwaLiquidityUsd = 'twaLiquidityUSD', + TwaNonBeanLiquidityUsd = 'twaNonBeanLiquidityUSD', + TwaPrice = 'twaPrice', + TwaReserves = 'twaReserves', + TwaToken2Price = 'twaToken2Price', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type PoolHourlySnapshot = { + __typename?: 'PoolHourlySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** All crosses occurred in the same time period as this snapshot */ + crossEvents: Array; + /** Cumulative number of peg crosses in this Pool */ + crosses: Scalars['Int']['output']; + /** Delta of crosses */ + deltaCrosses: Scalars['Int']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of liquidityUSD */ + deltaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Delta of reserves */ + deltaReserves: Array; + /** (DEPRECATED): See basin subgraph instead // Delta of volume */ + deltaVolume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Delta of volumeUSD */ + deltaVolumeUSD: Scalars['BigDecimal']['output']; + /** {Pool ID}-{Season} */ + id: Scalars['ID']['output']; + /** Instantaneous deltaB at the start of the season */ + instDeltaB: Scalars['BigDecimal']['output']; + /** Bean price in this pool at the end of the previous season */ + instPrice: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Total liquidity in this pool */ + liquidityUSD: Scalars['BigDecimal']['output']; + pool: Pool; + /** Token reserves in the pool */ + reserves: Array; + season: Season; + seasonNumber: Scalars['Int']['output']; + /** Time-Weighted average bean USD liquidity in this pool over the previous season, using the price of bean in this pool only */ + twaBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted deltaB over the previous season */ + twaDeltaB: Scalars['BigDecimal']['output']; + /** Time-Weighted average total USD liquidity in this pool over the previous season */ + twaLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted average non-bean USD liquidity in this pool over the previous season */ + twaNonBeanLiquidityUSD: Scalars['BigDecimal']['output']; + /** Time-Weighted bean price in this pool over the previous season */ + twaPrice: Scalars['BigDecimal']['output']; + /** Time-Weighted average reserves in this pool over the previous season */ + twaReserves: Array; + /** Time-Weighted price of the non-bean token in the pool over the previous season */ + twaToken2Price: Scalars['BigDecimal']['output']; + /** (DEPRECATED): See basin subgraph instead // Pool exchange volume in bean */ + volume: Scalars['BigInt']['output']; + /** (DEPRECATED): See basin subgraph instead // Pool exchange volume in USD */ + volumeUSD: Scalars['BigDecimal']['output']; +}; + + +export type PoolHourlySnapshotCrossEventsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PoolHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + crossEvents_?: InputMaybe; + crosses?: InputMaybe; + crosses_gt?: InputMaybe; + crosses_gte?: InputMaybe; + crosses_in?: InputMaybe>; + crosses_lt?: InputMaybe; + crosses_lte?: InputMaybe; + crosses_not?: InputMaybe; + crosses_not_in?: InputMaybe>; + deltaCrosses?: InputMaybe; + deltaCrosses_gt?: InputMaybe; + deltaCrosses_gte?: InputMaybe; + deltaCrosses_in?: InputMaybe>; + deltaCrosses_lt?: InputMaybe; + deltaCrosses_lte?: InputMaybe; + deltaCrosses_not?: InputMaybe; + deltaCrosses_not_in?: InputMaybe>; + deltaLiquidityUSD?: InputMaybe; + deltaLiquidityUSD_gt?: InputMaybe; + deltaLiquidityUSD_gte?: InputMaybe; + deltaLiquidityUSD_in?: InputMaybe>; + deltaLiquidityUSD_lt?: InputMaybe; + deltaLiquidityUSD_lte?: InputMaybe; + deltaLiquidityUSD_not?: InputMaybe; + deltaLiquidityUSD_not_in?: InputMaybe>; + deltaReserves?: InputMaybe>; + deltaReserves_contains?: InputMaybe>; + deltaReserves_contains_nocase?: InputMaybe>; + deltaReserves_not?: InputMaybe>; + deltaReserves_not_contains?: InputMaybe>; + deltaReserves_not_contains_nocase?: InputMaybe>; + deltaVolume?: InputMaybe; + deltaVolumeUSD?: InputMaybe; + deltaVolumeUSD_gt?: InputMaybe; + deltaVolumeUSD_gte?: InputMaybe; + deltaVolumeUSD_in?: InputMaybe>; + deltaVolumeUSD_lt?: InputMaybe; + deltaVolumeUSD_lte?: InputMaybe; + deltaVolumeUSD_not?: InputMaybe; + deltaVolumeUSD_not_in?: InputMaybe>; + deltaVolume_gt?: InputMaybe; + deltaVolume_gte?: InputMaybe; + deltaVolume_in?: InputMaybe>; + deltaVolume_lt?: InputMaybe; + deltaVolume_lte?: InputMaybe; + deltaVolume_not?: InputMaybe; + deltaVolume_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + instDeltaB?: InputMaybe; + instDeltaB_gt?: InputMaybe; + instDeltaB_gte?: InputMaybe; + instDeltaB_in?: InputMaybe>; + instDeltaB_lt?: InputMaybe; + instDeltaB_lte?: InputMaybe; + instDeltaB_not?: InputMaybe; + instDeltaB_not_in?: InputMaybe>; + instPrice?: InputMaybe; + instPrice_gt?: InputMaybe; + instPrice_gte?: InputMaybe; + instPrice_in?: InputMaybe>; + instPrice_lt?: InputMaybe; + instPrice_lte?: InputMaybe; + instPrice_not?: InputMaybe; + instPrice_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + liquidityUSD?: InputMaybe; + liquidityUSD_gt?: InputMaybe; + liquidityUSD_gte?: InputMaybe; + liquidityUSD_in?: InputMaybe>; + liquidityUSD_lt?: InputMaybe; + liquidityUSD_lte?: InputMaybe; + liquidityUSD_not?: InputMaybe; + liquidityUSD_not_in?: InputMaybe>; + or?: InputMaybe>>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + reserves?: InputMaybe>; + reserves_contains?: InputMaybe>; + reserves_contains_nocase?: InputMaybe>; + reserves_not?: InputMaybe>; + reserves_not_contains?: InputMaybe>; + reserves_not_contains_nocase?: InputMaybe>; + season?: InputMaybe; + seasonNumber?: InputMaybe; + seasonNumber_gt?: InputMaybe; + seasonNumber_gte?: InputMaybe; + seasonNumber_in?: InputMaybe>; + seasonNumber_lt?: InputMaybe; + seasonNumber_lte?: InputMaybe; + seasonNumber_not?: InputMaybe; + seasonNumber_not_in?: InputMaybe>; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + twaBeanLiquidityUSD?: InputMaybe; + twaBeanLiquidityUSD_gt?: InputMaybe; + twaBeanLiquidityUSD_gte?: InputMaybe; + twaBeanLiquidityUSD_in?: InputMaybe>; + twaBeanLiquidityUSD_lt?: InputMaybe; + twaBeanLiquidityUSD_lte?: InputMaybe; + twaBeanLiquidityUSD_not?: InputMaybe; + twaBeanLiquidityUSD_not_in?: InputMaybe>; + twaDeltaB?: InputMaybe; + twaDeltaB_gt?: InputMaybe; + twaDeltaB_gte?: InputMaybe; + twaDeltaB_in?: InputMaybe>; + twaDeltaB_lt?: InputMaybe; + twaDeltaB_lte?: InputMaybe; + twaDeltaB_not?: InputMaybe; + twaDeltaB_not_in?: InputMaybe>; + twaLiquidityUSD?: InputMaybe; + twaLiquidityUSD_gt?: InputMaybe; + twaLiquidityUSD_gte?: InputMaybe; + twaLiquidityUSD_in?: InputMaybe>; + twaLiquidityUSD_lt?: InputMaybe; + twaLiquidityUSD_lte?: InputMaybe; + twaLiquidityUSD_not?: InputMaybe; + twaLiquidityUSD_not_in?: InputMaybe>; + twaNonBeanLiquidityUSD?: InputMaybe; + twaNonBeanLiquidityUSD_gt?: InputMaybe; + twaNonBeanLiquidityUSD_gte?: InputMaybe; + twaNonBeanLiquidityUSD_in?: InputMaybe>; + twaNonBeanLiquidityUSD_lt?: InputMaybe; + twaNonBeanLiquidityUSD_lte?: InputMaybe; + twaNonBeanLiquidityUSD_not?: InputMaybe; + twaNonBeanLiquidityUSD_not_in?: InputMaybe>; + twaPrice?: InputMaybe; + twaPrice_gt?: InputMaybe; + twaPrice_gte?: InputMaybe; + twaPrice_in?: InputMaybe>; + twaPrice_lt?: InputMaybe; + twaPrice_lte?: InputMaybe; + twaPrice_not?: InputMaybe; + twaPrice_not_in?: InputMaybe>; + twaReserves?: InputMaybe>; + twaReserves_contains?: InputMaybe>; + twaReserves_contains_nocase?: InputMaybe>; + twaReserves_not?: InputMaybe>; + twaReserves_not_contains?: InputMaybe>; + twaReserves_not_contains_nocase?: InputMaybe>; + twaToken2Price?: InputMaybe; + twaToken2Price_gt?: InputMaybe; + twaToken2Price_gte?: InputMaybe; + twaToken2Price_in?: InputMaybe>; + twaToken2Price_lt?: InputMaybe; + twaToken2Price_lte?: InputMaybe; + twaToken2Price_not?: InputMaybe; + twaToken2Price_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum PoolHourlySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + CrossEvents = 'crossEvents', + Crosses = 'crosses', + DeltaCrosses = 'deltaCrosses', + DeltaLiquidityUsd = 'deltaLiquidityUSD', + DeltaReserves = 'deltaReserves', + DeltaVolume = 'deltaVolume', + DeltaVolumeUsd = 'deltaVolumeUSD', + Id = 'id', + InstDeltaB = 'instDeltaB', + InstPrice = 'instPrice', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LiquidityUsd = 'liquidityUSD', + Pool = 'pool', + PoolCreatedTimestamp = 'pool__createdTimestamp', + PoolCrosses = 'pool__crosses', + PoolId = 'pool__id', + PoolLastCross = 'pool__lastCross', + PoolLastDailySnapshotDay = 'pool__lastDailySnapshotDay', + PoolLastHourlySnapshotSeason = 'pool__lastHourlySnapshotSeason', + PoolLastPrice = 'pool__lastPrice', + PoolLastUpdateBlockNumber = 'pool__lastUpdateBlockNumber', + PoolLastUpdateTimestamp = 'pool__lastUpdateTimestamp', + PoolLiquidityUsd = 'pool__liquidityUSD', + PoolVolume = 'pool__volume', + PoolVolumeUsd = 'pool__volumeUSD', + Reserves = 'reserves', + Season = 'season', + SeasonNumber = 'seasonNumber', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + TwaBeanLiquidityUsd = 'twaBeanLiquidityUSD', + TwaDeltaB = 'twaDeltaB', + TwaLiquidityUsd = 'twaLiquidityUSD', + TwaNonBeanLiquidityUsd = 'twaNonBeanLiquidityUSD', + TwaPrice = 'twaPrice', + TwaReserves = 'twaReserves', + TwaToken2Price = 'twaToken2Price', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type Pool_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + bean?: InputMaybe; + bean_?: InputMaybe; + bean_contains?: InputMaybe; + bean_contains_nocase?: InputMaybe; + bean_ends_with?: InputMaybe; + bean_ends_with_nocase?: InputMaybe; + bean_gt?: InputMaybe; + bean_gte?: InputMaybe; + bean_in?: InputMaybe>; + bean_lt?: InputMaybe; + bean_lte?: InputMaybe; + bean_not?: InputMaybe; + bean_not_contains?: InputMaybe; + bean_not_contains_nocase?: InputMaybe; + bean_not_ends_with?: InputMaybe; + bean_not_ends_with_nocase?: InputMaybe; + bean_not_in?: InputMaybe>; + bean_not_starts_with?: InputMaybe; + bean_not_starts_with_nocase?: InputMaybe; + bean_starts_with?: InputMaybe; + bean_starts_with_nocase?: InputMaybe; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + crossEvents_?: InputMaybe; + crosses?: InputMaybe; + crosses_gt?: InputMaybe; + crosses_gte?: InputMaybe; + crosses_in?: InputMaybe>; + crosses_lt?: InputMaybe; + crosses_lte?: InputMaybe; + crosses_not?: InputMaybe; + crosses_not_in?: InputMaybe>; + currentSeason?: InputMaybe; + currentSeason_?: InputMaybe; + currentSeason_contains?: InputMaybe; + currentSeason_contains_nocase?: InputMaybe; + currentSeason_ends_with?: InputMaybe; + currentSeason_ends_with_nocase?: InputMaybe; + currentSeason_gt?: InputMaybe; + currentSeason_gte?: InputMaybe; + currentSeason_in?: InputMaybe>; + currentSeason_lt?: InputMaybe; + currentSeason_lte?: InputMaybe; + currentSeason_not?: InputMaybe; + currentSeason_not_contains?: InputMaybe; + currentSeason_not_contains_nocase?: InputMaybe; + currentSeason_not_ends_with?: InputMaybe; + currentSeason_not_ends_with_nocase?: InputMaybe; + currentSeason_not_in?: InputMaybe>; + currentSeason_not_starts_with?: InputMaybe; + currentSeason_not_starts_with_nocase?: InputMaybe; + currentSeason_starts_with?: InputMaybe; + currentSeason_starts_with_nocase?: InputMaybe; + dailySnapshots_?: InputMaybe; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastCross?: InputMaybe; + lastCross_gt?: InputMaybe; + lastCross_gte?: InputMaybe; + lastCross_in?: InputMaybe>; + lastCross_lt?: InputMaybe; + lastCross_lte?: InputMaybe; + lastCross_not?: InputMaybe; + lastCross_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + lastPrice?: InputMaybe; + lastPrice_gt?: InputMaybe; + lastPrice_gte?: InputMaybe; + lastPrice_in?: InputMaybe>; + lastPrice_lt?: InputMaybe; + lastPrice_lte?: InputMaybe; + lastPrice_not?: InputMaybe; + lastPrice_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + liquidityUSD?: InputMaybe; + liquidityUSD_gt?: InputMaybe; + liquidityUSD_gte?: InputMaybe; + liquidityUSD_in?: InputMaybe>; + liquidityUSD_lt?: InputMaybe; + liquidityUSD_lte?: InputMaybe; + liquidityUSD_not?: InputMaybe; + liquidityUSD_not_in?: InputMaybe>; + or?: InputMaybe>>; + reserves?: InputMaybe>; + reserves_contains?: InputMaybe>; + reserves_contains_nocase?: InputMaybe>; + reserves_not?: InputMaybe>; + reserves_not_contains?: InputMaybe>; + reserves_not_contains_nocase?: InputMaybe>; + tokens?: InputMaybe>; + tokens_?: InputMaybe; + tokens_contains?: InputMaybe>; + tokens_contains_nocase?: InputMaybe>; + tokens_not?: InputMaybe>; + tokens_not_contains?: InputMaybe>; + tokens_not_contains_nocase?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum Pool_OrderBy { + Bean = 'bean', + BeanCreatedTimestamp = 'bean__createdTimestamp', + BeanCrosses = 'bean__crosses', + BeanId = 'bean__id', + BeanLastCross = 'bean__lastCross', + BeanLastDailySnapshotDay = 'bean__lastDailySnapshotDay', + BeanLastHourlySnapshotSeason = 'bean__lastHourlySnapshotSeason', + BeanLastPrice = 'bean__lastPrice', + BeanLastUpdateBlockNumber = 'bean__lastUpdateBlockNumber', + BeanLastUpdateTimestamp = 'bean__lastUpdateTimestamp', + BeanLiquidityUsd = 'bean__liquidityUSD', + BeanLockedBeans = 'bean__lockedBeans', + BeanSupply = 'bean__supply', + BeanSupplyInPegLp = 'bean__supplyInPegLP', + BeanVolume = 'bean__volume', + BeanVolumeUsd = 'bean__volumeUSD', + CreatedTimestamp = 'createdTimestamp', + CrossEvents = 'crossEvents', + Crosses = 'crosses', + CurrentSeason = 'currentSeason', + CurrentSeasonId = 'currentSeason__id', + CurrentSeasonSeason = 'currentSeason__season', + CurrentSeasonTimestamp = 'currentSeason__timestamp', + DailySnapshots = 'dailySnapshots', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastCross = 'lastCross', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + LastPrice = 'lastPrice', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + LiquidityUsd = 'liquidityUSD', + Reserves = 'reserves', + Tokens = 'tokens', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type Query = { + __typename?: 'Query'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + bean?: Maybe; + beanCross?: Maybe; + beanCrosses: Array; + beanDailySnapshot?: Maybe; + beanDailySnapshots: Array; + beanHourlySnapshot?: Maybe; + beanHourlySnapshots: Array; + beans: Array; + farmerBalance?: Maybe; + farmerBalanceDailySnapshot?: Maybe; + farmerBalanceDailySnapshots: Array; + farmerBalanceHourlySnapshot?: Maybe; + farmerBalanceHourlySnapshots: Array; + farmerBalances: Array; + pool?: Maybe; + poolCross?: Maybe; + poolCrosses: Array; + poolDailySnapshot?: Maybe; + poolDailySnapshots: Array; + poolHourlySnapshot?: Maybe; + poolHourlySnapshots: Array; + pools: Array; + season?: Maybe; + seasons: Array; + token?: Maybe; + tokenDailySnapshot?: Maybe; + tokenDailySnapshots: Array; + tokenHourlySnapshot?: Maybe; + tokenHourlySnapshots: Array; + tokens: Array; + twaOracle?: Maybe; + twaOracles: Array; + version?: Maybe; + versions: Array; +}; + + +export type Query_MetaArgs = { + block?: InputMaybe; +}; + + +export type QueryBeanArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanCrossArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanCrossesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBeanDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBeanHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBeansArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFarmerBalanceArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFarmerBalanceDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFarmerBalanceDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFarmerBalanceHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFarmerBalanceHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFarmerBalancesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolCrossArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolCrossesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySeasonArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySeasonsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokenHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTwaOracleArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTwaOraclesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryVersionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryVersionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Season = { + __typename?: 'Season'; + beanDailySnapshot: BeanDailySnapshot; + beanHourlySnapshot: BeanHourlySnapshot; + /** Season number (string) */ + id: Scalars['ID']['output']; + poolDailySnapshots: Array; + poolHourlySnapshots: Array; + /** Season number (int) */ + season: Scalars['Int']['output']; + /** Timestamp of the start of this season */ + timestamp: Scalars['BigInt']['output']; +}; + + +export type SeasonPoolDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SeasonPoolHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Season_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beanDailySnapshot_?: InputMaybe; + beanHourlySnapshot_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + poolDailySnapshots_?: InputMaybe; + poolHourlySnapshots_?: InputMaybe; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; +}; + +export enum Season_OrderBy { + BeanDailySnapshot = 'beanDailySnapshot', + BeanDailySnapshotCreatedTimestamp = 'beanDailySnapshot__createdTimestamp', + BeanDailySnapshotCrosses = 'beanDailySnapshot__crosses', + BeanDailySnapshotDay = 'beanDailySnapshot__day', + BeanDailySnapshotDeltaCrosses = 'beanDailySnapshot__deltaCrosses', + BeanDailySnapshotDeltaLiquidityUsd = 'beanDailySnapshot__deltaLiquidityUSD', + BeanDailySnapshotDeltaVolume = 'beanDailySnapshot__deltaVolume', + BeanDailySnapshotDeltaVolumeUsd = 'beanDailySnapshot__deltaVolumeUSD', + BeanDailySnapshotId = 'beanDailySnapshot__id', + BeanDailySnapshotInstDeltaB = 'beanDailySnapshot__instDeltaB', + BeanDailySnapshotInstPrice = 'beanDailySnapshot__instPrice', + BeanDailySnapshotL2sr = 'beanDailySnapshot__l2sr', + BeanDailySnapshotLastUpdateBlockNumber = 'beanDailySnapshot__lastUpdateBlockNumber', + BeanDailySnapshotLastUpdateTimestamp = 'beanDailySnapshot__lastUpdateTimestamp', + BeanDailySnapshotLiquidityUsd = 'beanDailySnapshot__liquidityUSD', + BeanDailySnapshotLockedBeans = 'beanDailySnapshot__lockedBeans', + BeanDailySnapshotMarketCap = 'beanDailySnapshot__marketCap', + BeanDailySnapshotSupply = 'beanDailySnapshot__supply', + BeanDailySnapshotSupplyInPegLp = 'beanDailySnapshot__supplyInPegLP', + BeanDailySnapshotTwaBeanLiquidityUsd = 'beanDailySnapshot__twaBeanLiquidityUSD', + BeanDailySnapshotTwaDeltaB = 'beanDailySnapshot__twaDeltaB', + BeanDailySnapshotTwaLiquidityUsd = 'beanDailySnapshot__twaLiquidityUSD', + BeanDailySnapshotTwaNonBeanLiquidityUsd = 'beanDailySnapshot__twaNonBeanLiquidityUSD', + BeanDailySnapshotTwaPrice = 'beanDailySnapshot__twaPrice', + BeanDailySnapshotVolume = 'beanDailySnapshot__volume', + BeanDailySnapshotVolumeUsd = 'beanDailySnapshot__volumeUSD', + BeanHourlySnapshot = 'beanHourlySnapshot', + BeanHourlySnapshotCreatedTimestamp = 'beanHourlySnapshot__createdTimestamp', + BeanHourlySnapshotCrosses = 'beanHourlySnapshot__crosses', + BeanHourlySnapshotDeltaCrosses = 'beanHourlySnapshot__deltaCrosses', + BeanHourlySnapshotDeltaLiquidityUsd = 'beanHourlySnapshot__deltaLiquidityUSD', + BeanHourlySnapshotDeltaVolume = 'beanHourlySnapshot__deltaVolume', + BeanHourlySnapshotDeltaVolumeUsd = 'beanHourlySnapshot__deltaVolumeUSD', + BeanHourlySnapshotId = 'beanHourlySnapshot__id', + BeanHourlySnapshotInstDeltaB = 'beanHourlySnapshot__instDeltaB', + BeanHourlySnapshotInstPrice = 'beanHourlySnapshot__instPrice', + BeanHourlySnapshotL2sr = 'beanHourlySnapshot__l2sr', + BeanHourlySnapshotLastUpdateBlockNumber = 'beanHourlySnapshot__lastUpdateBlockNumber', + BeanHourlySnapshotLastUpdateTimestamp = 'beanHourlySnapshot__lastUpdateTimestamp', + BeanHourlySnapshotLiquidityUsd = 'beanHourlySnapshot__liquidityUSD', + BeanHourlySnapshotLockedBeans = 'beanHourlySnapshot__lockedBeans', + BeanHourlySnapshotMarketCap = 'beanHourlySnapshot__marketCap', + BeanHourlySnapshotSeasonNumber = 'beanHourlySnapshot__seasonNumber', + BeanHourlySnapshotSupply = 'beanHourlySnapshot__supply', + BeanHourlySnapshotSupplyInPegLp = 'beanHourlySnapshot__supplyInPegLP', + BeanHourlySnapshotTwaBeanLiquidityUsd = 'beanHourlySnapshot__twaBeanLiquidityUSD', + BeanHourlySnapshotTwaDeltaB = 'beanHourlySnapshot__twaDeltaB', + BeanHourlySnapshotTwaLiquidityUsd = 'beanHourlySnapshot__twaLiquidityUSD', + BeanHourlySnapshotTwaNonBeanLiquidityUsd = 'beanHourlySnapshot__twaNonBeanLiquidityUSD', + BeanHourlySnapshotTwaPrice = 'beanHourlySnapshot__twaPrice', + BeanHourlySnapshotVolume = 'beanHourlySnapshot__volume', + BeanHourlySnapshotVolumeUsd = 'beanHourlySnapshot__volumeUSD', + Id = 'id', + PoolDailySnapshots = 'poolDailySnapshots', + PoolHourlySnapshots = 'poolHourlySnapshots', + Season = 'season', + Timestamp = 'timestamp' +} + +export type Subscription = { + __typename?: 'Subscription'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + bean?: Maybe; + beanCross?: Maybe; + beanCrosses: Array; + beanDailySnapshot?: Maybe; + beanDailySnapshots: Array; + beanHourlySnapshot?: Maybe; + beanHourlySnapshots: Array; + beans: Array; + farmerBalance?: Maybe; + farmerBalanceDailySnapshot?: Maybe; + farmerBalanceDailySnapshots: Array; + farmerBalanceHourlySnapshot?: Maybe; + farmerBalanceHourlySnapshots: Array; + farmerBalances: Array; + pool?: Maybe; + poolCross?: Maybe; + poolCrosses: Array; + poolDailySnapshot?: Maybe; + poolDailySnapshots: Array; + poolHourlySnapshot?: Maybe; + poolHourlySnapshots: Array; + pools: Array; + season?: Maybe; + seasons: Array; + token?: Maybe; + tokenDailySnapshot?: Maybe; + tokenDailySnapshots: Array; + tokenHourlySnapshot?: Maybe; + tokenHourlySnapshots: Array; + tokens: Array; + twaOracle?: Maybe; + twaOracles: Array; + version?: Maybe; + versions: Array; +}; + + +export type Subscription_MetaArgs = { + block?: InputMaybe; +}; + + +export type SubscriptionBeanArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanCrossArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanCrossesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBeanDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBeanHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBeansArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFarmerBalanceArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFarmerBalanceDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFarmerBalanceDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFarmerBalanceHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFarmerBalanceHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFarmerBalancesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolCrossArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolCrossesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSeasonArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSeasonsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokenHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTwaOracleArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTwaOraclesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionVersionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionVersionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Token = { + __typename?: 'Token'; + dailySnapshots: Array; + /** Number of decimals */ + decimals: Scalars['BigInt']['output']; + /** Amount of tokens in farm balances. Isn't calculated for all tokens, in those cases will be zero. */ + farmBalance: Scalars['BigInt']['output']; + hourlySnapshots: Array; + /** Smart contract address of the token */ + id: Scalars['Bytes']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Last USD price calculated. Isn't calculated for all tokens, in those cases will be zero. */ + lastPriceUSD: Scalars['BigDecimal']['output']; + /** Name of the token */ + name: Scalars['String']['output']; + /** Amount of tokens in whitelisted LP pools. Isn't calculated for all tokens, in those cases will be zero. */ + pooledBalance: Scalars['BigInt']['output']; + /** Total supply of this token. Isn't calculated for all tokens, in those cases will be zero. */ + supply: Scalars['BigInt']['output']; + /** Amount of tokens in individual wallets/contracts (includes silo). Isn't calculated for all tokens, in those cases will be zero. */ + walletBalance: Scalars['BigInt']['output']; +}; + + +export type TokenDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TokenHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type TokenDailySnapshot = { + __typename?: 'TokenDailySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** Unix day */ + day: Scalars['Int']['output']; + /** Number of decimals */ + decimals: Scalars['BigInt']['output']; + /** Delta of farmBalance */ + deltaFarmBalance: Scalars['BigInt']['output']; + /** Delta of lastPriceUSD */ + deltaLastPriceUSD: Scalars['BigDecimal']['output']; + /** Delta of pooledBalance */ + deltaPooledBalance: Scalars['BigInt']['output']; + /** Delta of supply */ + deltaSupply: Scalars['BigInt']['output']; + /** Delta of walletBalance */ + deltaWalletBalance: Scalars['BigInt']['output']; + /** Amount of tokens in farm balances. Isn't calculated for all tokens, in those cases will be zero. */ + farmBalance: Scalars['BigInt']['output']; + /** {Token address}-{Unix day} */ + id: Scalars['ID']['output']; + /** Last USD price calculated. Isn't calculated for all tokens, in those cases will be zero. */ + lastPriceUSD: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Name of the token */ + name: Scalars['String']['output']; + /** Amount of tokens in whitelisted LP pools. Isn't calculated for all tokens, in those cases will be zero. */ + pooledBalance: Scalars['BigInt']['output']; + season: Season; + /** Total supply of this token. Isn't calculated for all tokens, in those cases will be zero. */ + supply: Scalars['BigInt']['output']; + token: Token; + /** Amount of tokens in individual wallets/contracts (includes silo). Isn't calculated for all tokens, in those cases will be zero. */ + walletBalance: Scalars['BigInt']['output']; +}; + +export type TokenDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + day?: InputMaybe; + day_gt?: InputMaybe; + day_gte?: InputMaybe; + day_in?: InputMaybe>; + day_lt?: InputMaybe; + day_lte?: InputMaybe; + day_not?: InputMaybe; + day_not_in?: InputMaybe>; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + deltaFarmBalance?: InputMaybe; + deltaFarmBalance_gt?: InputMaybe; + deltaFarmBalance_gte?: InputMaybe; + deltaFarmBalance_in?: InputMaybe>; + deltaFarmBalance_lt?: InputMaybe; + deltaFarmBalance_lte?: InputMaybe; + deltaFarmBalance_not?: InputMaybe; + deltaFarmBalance_not_in?: InputMaybe>; + deltaLastPriceUSD?: InputMaybe; + deltaLastPriceUSD_gt?: InputMaybe; + deltaLastPriceUSD_gte?: InputMaybe; + deltaLastPriceUSD_in?: InputMaybe>; + deltaLastPriceUSD_lt?: InputMaybe; + deltaLastPriceUSD_lte?: InputMaybe; + deltaLastPriceUSD_not?: InputMaybe; + deltaLastPriceUSD_not_in?: InputMaybe>; + deltaPooledBalance?: InputMaybe; + deltaPooledBalance_gt?: InputMaybe; + deltaPooledBalance_gte?: InputMaybe; + deltaPooledBalance_in?: InputMaybe>; + deltaPooledBalance_lt?: InputMaybe; + deltaPooledBalance_lte?: InputMaybe; + deltaPooledBalance_not?: InputMaybe; + deltaPooledBalance_not_in?: InputMaybe>; + deltaSupply?: InputMaybe; + deltaSupply_gt?: InputMaybe; + deltaSupply_gte?: InputMaybe; + deltaSupply_in?: InputMaybe>; + deltaSupply_lt?: InputMaybe; + deltaSupply_lte?: InputMaybe; + deltaSupply_not?: InputMaybe; + deltaSupply_not_in?: InputMaybe>; + deltaWalletBalance?: InputMaybe; + deltaWalletBalance_gt?: InputMaybe; + deltaWalletBalance_gte?: InputMaybe; + deltaWalletBalance_in?: InputMaybe>; + deltaWalletBalance_lt?: InputMaybe; + deltaWalletBalance_lte?: InputMaybe; + deltaWalletBalance_not?: InputMaybe; + deltaWalletBalance_not_in?: InputMaybe>; + farmBalance?: InputMaybe; + farmBalance_gt?: InputMaybe; + farmBalance_gte?: InputMaybe; + farmBalance_in?: InputMaybe>; + farmBalance_lt?: InputMaybe; + farmBalance_lte?: InputMaybe; + farmBalance_not?: InputMaybe; + farmBalance_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastPriceUSD?: InputMaybe; + lastPriceUSD_gt?: InputMaybe; + lastPriceUSD_gte?: InputMaybe; + lastPriceUSD_in?: InputMaybe>; + lastPriceUSD_lt?: InputMaybe; + lastPriceUSD_lte?: InputMaybe; + lastPriceUSD_not?: InputMaybe; + lastPriceUSD_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + name?: InputMaybe; + name_contains?: InputMaybe; + name_contains_nocase?: InputMaybe; + name_ends_with?: InputMaybe; + name_ends_with_nocase?: InputMaybe; + name_gt?: InputMaybe; + name_gte?: InputMaybe; + name_in?: InputMaybe>; + name_lt?: InputMaybe; + name_lte?: InputMaybe; + name_not?: InputMaybe; + name_not_contains?: InputMaybe; + name_not_contains_nocase?: InputMaybe; + name_not_ends_with?: InputMaybe; + name_not_ends_with_nocase?: InputMaybe; + name_not_in?: InputMaybe>; + name_not_starts_with?: InputMaybe; + name_not_starts_with_nocase?: InputMaybe; + name_starts_with?: InputMaybe; + name_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + pooledBalance?: InputMaybe; + pooledBalance_gt?: InputMaybe; + pooledBalance_gte?: InputMaybe; + pooledBalance_in?: InputMaybe>; + pooledBalance_lt?: InputMaybe; + pooledBalance_lte?: InputMaybe; + pooledBalance_not?: InputMaybe; + pooledBalance_not_in?: InputMaybe>; + season?: InputMaybe; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + walletBalance?: InputMaybe; + walletBalance_gt?: InputMaybe; + walletBalance_gte?: InputMaybe; + walletBalance_in?: InputMaybe>; + walletBalance_lt?: InputMaybe; + walletBalance_lte?: InputMaybe; + walletBalance_not?: InputMaybe; + walletBalance_not_in?: InputMaybe>; +}; + +export enum TokenDailySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + Day = 'day', + Decimals = 'decimals', + DeltaFarmBalance = 'deltaFarmBalance', + DeltaLastPriceUsd = 'deltaLastPriceUSD', + DeltaPooledBalance = 'deltaPooledBalance', + DeltaSupply = 'deltaSupply', + DeltaWalletBalance = 'deltaWalletBalance', + FarmBalance = 'farmBalance', + Id = 'id', + LastPriceUsd = 'lastPriceUSD', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + Name = 'name', + PooledBalance = 'pooledBalance', + Season = 'season', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + Supply = 'supply', + Token = 'token', + TokenDecimals = 'token__decimals', + TokenFarmBalance = 'token__farmBalance', + TokenId = 'token__id', + TokenLastDailySnapshotDay = 'token__lastDailySnapshotDay', + TokenLastHourlySnapshotSeason = 'token__lastHourlySnapshotSeason', + TokenLastPriceUsd = 'token__lastPriceUSD', + TokenName = 'token__name', + TokenPooledBalance = 'token__pooledBalance', + TokenSupply = 'token__supply', + TokenWalletBalance = 'token__walletBalance', + WalletBalance = 'walletBalance' +} + +export type TokenHourlySnapshot = { + __typename?: 'TokenHourlySnapshot'; + /** Timestamp of entity creation */ + createdTimestamp: Scalars['BigInt']['output']; + /** Number of decimals */ + decimals: Scalars['BigInt']['output']; + /** Delta of farmBalance */ + deltaFarmBalance: Scalars['BigInt']['output']; + /** Delta of lastPriceUSD */ + deltaLastPriceUSD: Scalars['BigDecimal']['output']; + /** Delta of pooledBalance */ + deltaPooledBalance: Scalars['BigInt']['output']; + /** Delta of supply */ + deltaSupply: Scalars['BigInt']['output']; + /** Delta of walletBalance */ + deltaWalletBalance: Scalars['BigInt']['output']; + /** Amount of tokens in farm balances. Isn't calculated for all tokens, in those cases will be zero. */ + farmBalance: Scalars['BigInt']['output']; + /** {Token address}-{Season} */ + id: Scalars['ID']['output']; + /** Last USD price calculated. Isn't calculated for all tokens, in those cases will be zero. */ + lastPriceUSD: Scalars['BigDecimal']['output']; + /** Block number of the last time this entity was updated */ + lastUpdateBlockNumber: Scalars['BigInt']['output']; + /** Timestamp of the last time this entity was updated */ + lastUpdateTimestamp: Scalars['BigInt']['output']; + /** Name of the token */ + name: Scalars['String']['output']; + /** Amount of tokens in whitelisted LP pools. Isn't calculated for all tokens, in those cases will be zero. */ + pooledBalance: Scalars['BigInt']['output']; + season: Season; + seasonNumber: Scalars['Int']['output']; + /** Total supply of this token. Isn't calculated for all tokens, in those cases will be zero. */ + supply: Scalars['BigInt']['output']; + token: Token; + /** Amount of tokens in individual wallets/contracts (includes silo). Isn't calculated for all tokens, in those cases will be zero. */ + walletBalance: Scalars['BigInt']['output']; +}; + +export type TokenHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdTimestamp?: InputMaybe; + createdTimestamp_gt?: InputMaybe; + createdTimestamp_gte?: InputMaybe; + createdTimestamp_in?: InputMaybe>; + createdTimestamp_lt?: InputMaybe; + createdTimestamp_lte?: InputMaybe; + createdTimestamp_not?: InputMaybe; + createdTimestamp_not_in?: InputMaybe>; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + deltaFarmBalance?: InputMaybe; + deltaFarmBalance_gt?: InputMaybe; + deltaFarmBalance_gte?: InputMaybe; + deltaFarmBalance_in?: InputMaybe>; + deltaFarmBalance_lt?: InputMaybe; + deltaFarmBalance_lte?: InputMaybe; + deltaFarmBalance_not?: InputMaybe; + deltaFarmBalance_not_in?: InputMaybe>; + deltaLastPriceUSD?: InputMaybe; + deltaLastPriceUSD_gt?: InputMaybe; + deltaLastPriceUSD_gte?: InputMaybe; + deltaLastPriceUSD_in?: InputMaybe>; + deltaLastPriceUSD_lt?: InputMaybe; + deltaLastPriceUSD_lte?: InputMaybe; + deltaLastPriceUSD_not?: InputMaybe; + deltaLastPriceUSD_not_in?: InputMaybe>; + deltaPooledBalance?: InputMaybe; + deltaPooledBalance_gt?: InputMaybe; + deltaPooledBalance_gte?: InputMaybe; + deltaPooledBalance_in?: InputMaybe>; + deltaPooledBalance_lt?: InputMaybe; + deltaPooledBalance_lte?: InputMaybe; + deltaPooledBalance_not?: InputMaybe; + deltaPooledBalance_not_in?: InputMaybe>; + deltaSupply?: InputMaybe; + deltaSupply_gt?: InputMaybe; + deltaSupply_gte?: InputMaybe; + deltaSupply_in?: InputMaybe>; + deltaSupply_lt?: InputMaybe; + deltaSupply_lte?: InputMaybe; + deltaSupply_not?: InputMaybe; + deltaSupply_not_in?: InputMaybe>; + deltaWalletBalance?: InputMaybe; + deltaWalletBalance_gt?: InputMaybe; + deltaWalletBalance_gte?: InputMaybe; + deltaWalletBalance_in?: InputMaybe>; + deltaWalletBalance_lt?: InputMaybe; + deltaWalletBalance_lte?: InputMaybe; + deltaWalletBalance_not?: InputMaybe; + deltaWalletBalance_not_in?: InputMaybe>; + farmBalance?: InputMaybe; + farmBalance_gt?: InputMaybe; + farmBalance_gte?: InputMaybe; + farmBalance_in?: InputMaybe>; + farmBalance_lt?: InputMaybe; + farmBalance_lte?: InputMaybe; + farmBalance_not?: InputMaybe; + farmBalance_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastPriceUSD?: InputMaybe; + lastPriceUSD_gt?: InputMaybe; + lastPriceUSD_gte?: InputMaybe; + lastPriceUSD_in?: InputMaybe>; + lastPriceUSD_lt?: InputMaybe; + lastPriceUSD_lte?: InputMaybe; + lastPriceUSD_not?: InputMaybe; + lastPriceUSD_not_in?: InputMaybe>; + lastUpdateBlockNumber?: InputMaybe; + lastUpdateBlockNumber_gt?: InputMaybe; + lastUpdateBlockNumber_gte?: InputMaybe; + lastUpdateBlockNumber_in?: InputMaybe>; + lastUpdateBlockNumber_lt?: InputMaybe; + lastUpdateBlockNumber_lte?: InputMaybe; + lastUpdateBlockNumber_not?: InputMaybe; + lastUpdateBlockNumber_not_in?: InputMaybe>; + lastUpdateTimestamp?: InputMaybe; + lastUpdateTimestamp_gt?: InputMaybe; + lastUpdateTimestamp_gte?: InputMaybe; + lastUpdateTimestamp_in?: InputMaybe>; + lastUpdateTimestamp_lt?: InputMaybe; + lastUpdateTimestamp_lte?: InputMaybe; + lastUpdateTimestamp_not?: InputMaybe; + lastUpdateTimestamp_not_in?: InputMaybe>; + name?: InputMaybe; + name_contains?: InputMaybe; + name_contains_nocase?: InputMaybe; + name_ends_with?: InputMaybe; + name_ends_with_nocase?: InputMaybe; + name_gt?: InputMaybe; + name_gte?: InputMaybe; + name_in?: InputMaybe>; + name_lt?: InputMaybe; + name_lte?: InputMaybe; + name_not?: InputMaybe; + name_not_contains?: InputMaybe; + name_not_contains_nocase?: InputMaybe; + name_not_ends_with?: InputMaybe; + name_not_ends_with_nocase?: InputMaybe; + name_not_in?: InputMaybe>; + name_not_starts_with?: InputMaybe; + name_not_starts_with_nocase?: InputMaybe; + name_starts_with?: InputMaybe; + name_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + pooledBalance?: InputMaybe; + pooledBalance_gt?: InputMaybe; + pooledBalance_gte?: InputMaybe; + pooledBalance_in?: InputMaybe>; + pooledBalance_lt?: InputMaybe; + pooledBalance_lte?: InputMaybe; + pooledBalance_not?: InputMaybe; + pooledBalance_not_in?: InputMaybe>; + season?: InputMaybe; + seasonNumber?: InputMaybe; + seasonNumber_gt?: InputMaybe; + seasonNumber_gte?: InputMaybe; + seasonNumber_in?: InputMaybe>; + seasonNumber_lt?: InputMaybe; + seasonNumber_lte?: InputMaybe; + seasonNumber_not?: InputMaybe; + seasonNumber_not_in?: InputMaybe>; + season_?: InputMaybe; + season_contains?: InputMaybe; + season_contains_nocase?: InputMaybe; + season_ends_with?: InputMaybe; + season_ends_with_nocase?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_contains?: InputMaybe; + season_not_contains_nocase?: InputMaybe; + season_not_ends_with?: InputMaybe; + season_not_ends_with_nocase?: InputMaybe; + season_not_in?: InputMaybe>; + season_not_starts_with?: InputMaybe; + season_not_starts_with_nocase?: InputMaybe; + season_starts_with?: InputMaybe; + season_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + walletBalance?: InputMaybe; + walletBalance_gt?: InputMaybe; + walletBalance_gte?: InputMaybe; + walletBalance_in?: InputMaybe>; + walletBalance_lt?: InputMaybe; + walletBalance_lte?: InputMaybe; + walletBalance_not?: InputMaybe; + walletBalance_not_in?: InputMaybe>; +}; + +export enum TokenHourlySnapshot_OrderBy { + CreatedTimestamp = 'createdTimestamp', + Decimals = 'decimals', + DeltaFarmBalance = 'deltaFarmBalance', + DeltaLastPriceUsd = 'deltaLastPriceUSD', + DeltaPooledBalance = 'deltaPooledBalance', + DeltaSupply = 'deltaSupply', + DeltaWalletBalance = 'deltaWalletBalance', + FarmBalance = 'farmBalance', + Id = 'id', + LastPriceUsd = 'lastPriceUSD', + LastUpdateBlockNumber = 'lastUpdateBlockNumber', + LastUpdateTimestamp = 'lastUpdateTimestamp', + Name = 'name', + PooledBalance = 'pooledBalance', + Season = 'season', + SeasonNumber = 'seasonNumber', + SeasonId = 'season__id', + SeasonSeason = 'season__season', + SeasonTimestamp = 'season__timestamp', + Supply = 'supply', + Token = 'token', + TokenDecimals = 'token__decimals', + TokenFarmBalance = 'token__farmBalance', + TokenId = 'token__id', + TokenLastDailySnapshotDay = 'token__lastDailySnapshotDay', + TokenLastHourlySnapshotSeason = 'token__lastHourlySnapshotSeason', + TokenLastPriceUsd = 'token__lastPriceUSD', + TokenName = 'token__name', + TokenPooledBalance = 'token__pooledBalance', + TokenSupply = 'token__supply', + TokenWalletBalance = 'token__walletBalance', + WalletBalance = 'walletBalance' +} + +export type Token_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + dailySnapshots_?: InputMaybe; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + farmBalance?: InputMaybe; + farmBalance_gt?: InputMaybe; + farmBalance_gte?: InputMaybe; + farmBalance_in?: InputMaybe>; + farmBalance_lt?: InputMaybe; + farmBalance_lte?: InputMaybe; + farmBalance_not?: InputMaybe; + farmBalance_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + lastPriceUSD?: InputMaybe; + lastPriceUSD_gt?: InputMaybe; + lastPriceUSD_gte?: InputMaybe; + lastPriceUSD_in?: InputMaybe>; + lastPriceUSD_lt?: InputMaybe; + lastPriceUSD_lte?: InputMaybe; + lastPriceUSD_not?: InputMaybe; + lastPriceUSD_not_in?: InputMaybe>; + name?: InputMaybe; + name_contains?: InputMaybe; + name_contains_nocase?: InputMaybe; + name_ends_with?: InputMaybe; + name_ends_with_nocase?: InputMaybe; + name_gt?: InputMaybe; + name_gte?: InputMaybe; + name_in?: InputMaybe>; + name_lt?: InputMaybe; + name_lte?: InputMaybe; + name_not?: InputMaybe; + name_not_contains?: InputMaybe; + name_not_contains_nocase?: InputMaybe; + name_not_ends_with?: InputMaybe; + name_not_ends_with_nocase?: InputMaybe; + name_not_in?: InputMaybe>; + name_not_starts_with?: InputMaybe; + name_not_starts_with_nocase?: InputMaybe; + name_starts_with?: InputMaybe; + name_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + pooledBalance?: InputMaybe; + pooledBalance_gt?: InputMaybe; + pooledBalance_gte?: InputMaybe; + pooledBalance_in?: InputMaybe>; + pooledBalance_lt?: InputMaybe; + pooledBalance_lte?: InputMaybe; + pooledBalance_not?: InputMaybe; + pooledBalance_not_in?: InputMaybe>; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + walletBalance?: InputMaybe; + walletBalance_gt?: InputMaybe; + walletBalance_gte?: InputMaybe; + walletBalance_in?: InputMaybe>; + walletBalance_lt?: InputMaybe; + walletBalance_lte?: InputMaybe; + walletBalance_not?: InputMaybe; + walletBalance_not_in?: InputMaybe>; +}; + +export enum Token_OrderBy { + DailySnapshots = 'dailySnapshots', + Decimals = 'decimals', + FarmBalance = 'farmBalance', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + LastPriceUsd = 'lastPriceUSD', + Name = 'name', + PooledBalance = 'pooledBalance', + Supply = 'supply', + WalletBalance = 'walletBalance' +} + +export type TwaOracle = { + __typename?: 'TwaOracle'; + cumulativeWellReserves: Scalars['Bytes']['output']; + cumulativeWellReservesBlock: Scalars['BigInt']['output']; + cumulativeWellReservesPrev: Scalars['Bytes']['output']; + cumulativeWellReservesPrevBlock: Scalars['BigInt']['output']; + cumulativeWellReservesPrevTime: Scalars['BigInt']['output']; + cumulativeWellReservesTime: Scalars['BigInt']['output']; + /** NOTICE! This entity is intended for internal use, and is intentionally not documented or even useful in the graphql interface. */ + id: Scalars['Bytes']['output']; + lastBalances: Array; + lastSun: Scalars['BigInt']['output']; + lastUpdated: Scalars['BigInt']['output']; + pool: Pool; + priceCumulativeLast: Array; + priceCumulativeSun: Array; +}; + +export type TwaOracle_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + cumulativeWellReserves?: InputMaybe; + cumulativeWellReservesBlock?: InputMaybe; + cumulativeWellReservesBlock_gt?: InputMaybe; + cumulativeWellReservesBlock_gte?: InputMaybe; + cumulativeWellReservesBlock_in?: InputMaybe>; + cumulativeWellReservesBlock_lt?: InputMaybe; + cumulativeWellReservesBlock_lte?: InputMaybe; + cumulativeWellReservesBlock_not?: InputMaybe; + cumulativeWellReservesBlock_not_in?: InputMaybe>; + cumulativeWellReservesPrev?: InputMaybe; + cumulativeWellReservesPrevBlock?: InputMaybe; + cumulativeWellReservesPrevBlock_gt?: InputMaybe; + cumulativeWellReservesPrevBlock_gte?: InputMaybe; + cumulativeWellReservesPrevBlock_in?: InputMaybe>; + cumulativeWellReservesPrevBlock_lt?: InputMaybe; + cumulativeWellReservesPrevBlock_lte?: InputMaybe; + cumulativeWellReservesPrevBlock_not?: InputMaybe; + cumulativeWellReservesPrevBlock_not_in?: InputMaybe>; + cumulativeWellReservesPrevTime?: InputMaybe; + cumulativeWellReservesPrevTime_gt?: InputMaybe; + cumulativeWellReservesPrevTime_gte?: InputMaybe; + cumulativeWellReservesPrevTime_in?: InputMaybe>; + cumulativeWellReservesPrevTime_lt?: InputMaybe; + cumulativeWellReservesPrevTime_lte?: InputMaybe; + cumulativeWellReservesPrevTime_not?: InputMaybe; + cumulativeWellReservesPrevTime_not_in?: InputMaybe>; + cumulativeWellReservesPrev_contains?: InputMaybe; + cumulativeWellReservesPrev_gt?: InputMaybe; + cumulativeWellReservesPrev_gte?: InputMaybe; + cumulativeWellReservesPrev_in?: InputMaybe>; + cumulativeWellReservesPrev_lt?: InputMaybe; + cumulativeWellReservesPrev_lte?: InputMaybe; + cumulativeWellReservesPrev_not?: InputMaybe; + cumulativeWellReservesPrev_not_contains?: InputMaybe; + cumulativeWellReservesPrev_not_in?: InputMaybe>; + cumulativeWellReservesTime?: InputMaybe; + cumulativeWellReservesTime_gt?: InputMaybe; + cumulativeWellReservesTime_gte?: InputMaybe; + cumulativeWellReservesTime_in?: InputMaybe>; + cumulativeWellReservesTime_lt?: InputMaybe; + cumulativeWellReservesTime_lte?: InputMaybe; + cumulativeWellReservesTime_not?: InputMaybe; + cumulativeWellReservesTime_not_in?: InputMaybe>; + cumulativeWellReserves_contains?: InputMaybe; + cumulativeWellReserves_gt?: InputMaybe; + cumulativeWellReserves_gte?: InputMaybe; + cumulativeWellReserves_in?: InputMaybe>; + cumulativeWellReserves_lt?: InputMaybe; + cumulativeWellReserves_lte?: InputMaybe; + cumulativeWellReserves_not?: InputMaybe; + cumulativeWellReserves_not_contains?: InputMaybe; + cumulativeWellReserves_not_in?: InputMaybe>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastBalances?: InputMaybe>; + lastBalances_contains?: InputMaybe>; + lastBalances_contains_nocase?: InputMaybe>; + lastBalances_not?: InputMaybe>; + lastBalances_not_contains?: InputMaybe>; + lastBalances_not_contains_nocase?: InputMaybe>; + lastSun?: InputMaybe; + lastSun_gt?: InputMaybe; + lastSun_gte?: InputMaybe; + lastSun_in?: InputMaybe>; + lastSun_lt?: InputMaybe; + lastSun_lte?: InputMaybe; + lastSun_not?: InputMaybe; + lastSun_not_in?: InputMaybe>; + lastUpdated?: InputMaybe; + lastUpdated_gt?: InputMaybe; + lastUpdated_gte?: InputMaybe; + lastUpdated_in?: InputMaybe>; + lastUpdated_lt?: InputMaybe; + lastUpdated_lte?: InputMaybe; + lastUpdated_not?: InputMaybe; + lastUpdated_not_in?: InputMaybe>; + or?: InputMaybe>>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + priceCumulativeLast?: InputMaybe>; + priceCumulativeLast_contains?: InputMaybe>; + priceCumulativeLast_contains_nocase?: InputMaybe>; + priceCumulativeLast_not?: InputMaybe>; + priceCumulativeLast_not_contains?: InputMaybe>; + priceCumulativeLast_not_contains_nocase?: InputMaybe>; + priceCumulativeSun?: InputMaybe>; + priceCumulativeSun_contains?: InputMaybe>; + priceCumulativeSun_contains_nocase?: InputMaybe>; + priceCumulativeSun_not?: InputMaybe>; + priceCumulativeSun_not_contains?: InputMaybe>; + priceCumulativeSun_not_contains_nocase?: InputMaybe>; +}; + +export enum TwaOracle_OrderBy { + CumulativeWellReserves = 'cumulativeWellReserves', + CumulativeWellReservesBlock = 'cumulativeWellReservesBlock', + CumulativeWellReservesPrev = 'cumulativeWellReservesPrev', + CumulativeWellReservesPrevBlock = 'cumulativeWellReservesPrevBlock', + CumulativeWellReservesPrevTime = 'cumulativeWellReservesPrevTime', + CumulativeWellReservesTime = 'cumulativeWellReservesTime', + Id = 'id', + LastBalances = 'lastBalances', + LastSun = 'lastSun', + LastUpdated = 'lastUpdated', + Pool = 'pool', + PoolCreatedTimestamp = 'pool__createdTimestamp', + PoolCrosses = 'pool__crosses', + PoolId = 'pool__id', + PoolLastCross = 'pool__lastCross', + PoolLastDailySnapshotDay = 'pool__lastDailySnapshotDay', + PoolLastHourlySnapshotSeason = 'pool__lastHourlySnapshotSeason', + PoolLastPrice = 'pool__lastPrice', + PoolLastUpdateBlockNumber = 'pool__lastUpdateBlockNumber', + PoolLastUpdateTimestamp = 'pool__lastUpdateTimestamp', + PoolLiquidityUsd = 'pool__liquidityUSD', + PoolVolume = 'pool__volume', + PoolVolumeUsd = 'pool__volumeUSD', + PriceCumulativeLast = 'priceCumulativeLast', + PriceCumulativeSun = 'priceCumulativeSun' +} + +export type Version = { + __typename?: 'Version'; + /** Which blockchain is being indexed, i.e. 'ethereum', 'arbitrum', etc. */ + chain: Scalars['String']['output']; + /** = 'subgraph' */ + id: Scalars['ID']['output']; + /** Address of Beanstalk protocol */ + protocolAddress: Scalars['Bytes']['output']; + /** = 'beanstalk' */ + subgraphName: Scalars['String']['output']; + /** Verison number of the subgraph */ + versionNumber: Scalars['String']['output']; +}; + +export type Version_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + chain?: InputMaybe; + chain_contains?: InputMaybe; + chain_contains_nocase?: InputMaybe; + chain_ends_with?: InputMaybe; + chain_ends_with_nocase?: InputMaybe; + chain_gt?: InputMaybe; + chain_gte?: InputMaybe; + chain_in?: InputMaybe>; + chain_lt?: InputMaybe; + chain_lte?: InputMaybe; + chain_not?: InputMaybe; + chain_not_contains?: InputMaybe; + chain_not_contains_nocase?: InputMaybe; + chain_not_ends_with?: InputMaybe; + chain_not_ends_with_nocase?: InputMaybe; + chain_not_in?: InputMaybe>; + chain_not_starts_with?: InputMaybe; + chain_not_starts_with_nocase?: InputMaybe; + chain_starts_with?: InputMaybe; + chain_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + protocolAddress?: InputMaybe; + protocolAddress_contains?: InputMaybe; + protocolAddress_gt?: InputMaybe; + protocolAddress_gte?: InputMaybe; + protocolAddress_in?: InputMaybe>; + protocolAddress_lt?: InputMaybe; + protocolAddress_lte?: InputMaybe; + protocolAddress_not?: InputMaybe; + protocolAddress_not_contains?: InputMaybe; + protocolAddress_not_in?: InputMaybe>; + subgraphName?: InputMaybe; + subgraphName_contains?: InputMaybe; + subgraphName_contains_nocase?: InputMaybe; + subgraphName_ends_with?: InputMaybe; + subgraphName_ends_with_nocase?: InputMaybe; + subgraphName_gt?: InputMaybe; + subgraphName_gte?: InputMaybe; + subgraphName_in?: InputMaybe>; + subgraphName_lt?: InputMaybe; + subgraphName_lte?: InputMaybe; + subgraphName_not?: InputMaybe; + subgraphName_not_contains?: InputMaybe; + subgraphName_not_contains_nocase?: InputMaybe; + subgraphName_not_ends_with?: InputMaybe; + subgraphName_not_ends_with_nocase?: InputMaybe; + subgraphName_not_in?: InputMaybe>; + subgraphName_not_starts_with?: InputMaybe; + subgraphName_not_starts_with_nocase?: InputMaybe; + subgraphName_starts_with?: InputMaybe; + subgraphName_starts_with_nocase?: InputMaybe; + versionNumber?: InputMaybe; + versionNumber_contains?: InputMaybe; + versionNumber_contains_nocase?: InputMaybe; + versionNumber_ends_with?: InputMaybe; + versionNumber_ends_with_nocase?: InputMaybe; + versionNumber_gt?: InputMaybe; + versionNumber_gte?: InputMaybe; + versionNumber_in?: InputMaybe>; + versionNumber_lt?: InputMaybe; + versionNumber_lte?: InputMaybe; + versionNumber_not?: InputMaybe; + versionNumber_not_contains?: InputMaybe; + versionNumber_not_contains_nocase?: InputMaybe; + versionNumber_not_ends_with?: InputMaybe; + versionNumber_not_ends_with_nocase?: InputMaybe; + versionNumber_not_in?: InputMaybe>; + versionNumber_not_starts_with?: InputMaybe; + versionNumber_not_starts_with_nocase?: InputMaybe; + versionNumber_starts_with?: InputMaybe; + versionNumber_starts_with_nocase?: InputMaybe; +}; + +export enum Version_OrderBy { + Chain = 'chain', + Id = 'id', + ProtocolAddress = 'protocolAddress', + SubgraphName = 'subgraphName', + VersionNumber = 'versionNumber' +} + +export type _Block_ = { + __typename?: '_Block_'; + /** The hash of the block */ + hash?: Maybe; + /** The block number */ + number: Scalars['Int']['output']; + /** The hash of the parent block */ + parentHash?: Maybe; + /** Integer representation of the timestamp stored in blocks for the chain */ + timestamp?: Maybe; +}; + +/** The type for the top-level _meta field */ +export type _Meta_ = { + __typename?: '_Meta_'; + /** + * Information about a specific subgraph block. The hash of the block + * will be null if the _meta field has a block constraint that asks for + * a block number. It will be filled if the _meta field has no block constraint + * and therefore asks for the latest block + * + */ + block: _Block_; + /** The deployment ID */ + deployment: Scalars['String']['output']; + /** If `true`, the subgraph encountered indexing errors at some past block */ + hasIndexingErrors: Scalars['Boolean']['output']; +}; + +export enum _SubgraphErrorPolicy_ { + /** Data will be returned even if the subgraph has indexing errors */ + Allow = 'allow', + /** If the subgraph has indexing errors, data will be omitted. The default. */ + Deny = 'deny' +} + +export type BeanAdvancedChartQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanAdvancedChartQuery = { __typename?: 'Query', seasons: Array<{ __typename?: 'Season', id: string, timestamp: any, beanHourlySnapshot: { __typename?: 'BeanHourlySnapshot', l2sr: any, twaPrice: any, instPrice: any, twaDeltaB: any, instDeltaB: any, crosses: number, marketCap: any, supply: any, supplyInPegLP: any, season: { __typename?: 'Season', season: number, timestamp: any } } }> }; + +export type BeanSeasonsTableQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanSeasonsTableQuery = { __typename?: 'Query', seasons: Array<{ __typename?: 'Season', id: string, timestamp: any, beanHourlySnapshot: { __typename?: 'BeanHourlySnapshot', l2sr: any, twaPrice: any, instPrice: any, twaDeltaB: any, instDeltaB: any, season: { __typename?: 'Season', season: number } } }> }; + +export type BeanSeasonalBeanQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanSeasonalBeanQuery = { __typename?: 'Query', beanHourlySnapshots: Array<{ __typename?: 'BeanHourlySnapshot', id: string, supply: any, marketCap: any, instPrice: any, l2sr: any, liquidityUSD: any, createdTimestamp: any, season: { __typename?: 'Season', season: number } }> }; + + +export const BeanAdvancedChartDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanAdvancedChart"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seasons"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"beanHourlySnapshot"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"l2sr"}},{"kind":"Field","name":{"kind":"Name","value":"twaPrice"}},{"kind":"Field","name":{"kind":"Name","value":"instPrice"}},{"kind":"Field","name":{"kind":"Name","value":"twaDeltaB"}},{"kind":"Field","name":{"kind":"Name","value":"instDeltaB"}},{"kind":"Field","name":{"kind":"Name","value":"season"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}},{"kind":"Field","name":{"kind":"Name","value":"crosses"}},{"kind":"Field","name":{"kind":"Name","value":"marketCap"}},{"kind":"Field","name":{"kind":"Name","value":"supply"}},{"kind":"Field","name":{"kind":"Name","value":"supplyInPegLP"}}]}}]}}]}}]} as unknown as DocumentNode; +export const BeanSeasonsTableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanSeasonsTable"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seasons"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"beanHourlySnapshot"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"l2sr"}},{"kind":"Field","name":{"kind":"Name","value":"twaPrice"}},{"kind":"Field","name":{"kind":"Name","value":"instPrice"}},{"kind":"Field","name":{"kind":"Name","value":"twaDeltaB"}},{"kind":"Field","name":{"kind":"Name","value":"instDeltaB"}},{"kind":"Field","name":{"kind":"Name","value":"season"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const BeanSeasonalBeanDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanSeasonalBean"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beanHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season__season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}}]}},{"kind":"Field","name":{"kind":"Name","value":"supply"}},{"kind":"Field","name":{"kind":"Name","value":"marketCap"}},{"kind":"Field","name":{"kind":"Name","value":"instPrice"}},{"kind":"Field","name":{"kind":"Name","value":"l2sr"}},{"kind":"Field","name":{"kind":"Name","value":"liquidityUSD"}},{"kind":"Field","name":{"kind":"Name","value":"createdTimestamp"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/src/generated/gql/pinto/index.ts b/src/generated/gql/pinto/index.ts new file mode 100644 index 000000000..af7839936 --- /dev/null +++ b/src/generated/gql/pinto/index.ts @@ -0,0 +1 @@ +export * from "./gql"; \ No newline at end of file diff --git a/src/generated/gql/pintostalk/gql.ts b/src/generated/gql/pintostalk/gql.ts new file mode 100644 index 000000000..941ada1fa --- /dev/null +++ b/src/generated/gql/pintostalk/gql.ts @@ -0,0 +1,184 @@ +/* eslint-disable */ +import * as types from './graphql'; +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; + +/** + * Map of all GraphQL operations in the project. + * + * This map has several performance disadvantages: + * 1. It is not tree-shakeable, so it will include all operations in the project. + * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. + * 3. It does not support dead code elimination, so it will add unused operations. + * + * Therefore it is highly recommended to use the babel or swc plugin for production. + * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size + */ +type Documents = { + "query BeanstalkAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n createdAt\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n cultivationFactor\n cultivationTemperature\n harvestableIndex\n harvestablePods\n harvestedPods\n numberOfSowers\n numberOfSows\n podIndex\n realRateOfReturn\n seasonBlock\n soil\n soilSoldOut\n unharvestablePods\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n stalk\n }\n}": typeof types.BeanstalkAdvancedChartDocument, + "query FarmerPlots($account: ID!) {\n farmer(id: $account) {\n plots(\n first: 1000\n where: {pods_gt: \"50\", fullyHarvested: false}\n orderBy: index\n orderDirection: asc\n ) {\n beansPerPod\n createdAt\n creationHash\n fullyHarvested\n harvestablePods\n harvestedPods\n id\n index\n pods\n season\n source\n sourceHash\n preTransferSource\n preTransferOwner {\n id\n }\n updatedAt\n updatedAtBlock\n listing {\n id\n }\n }\n }\n}": typeof types.FarmerPlotsDocument, + "query FarmerSiloBalances($account: ID!, $season: Int!) {\n farmer(id: $account) {\n deposited: deposits(\n orderBy: season\n orderDirection: asc\n where: {depositedAmount_gt: 0}\n ) {\n season\n stem\n token\n depositedAmount\n depositedBDV\n }\n withdrawn: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_gt: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n claimable: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_lte: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n }\n}": typeof types.FarmerSiloBalancesDocument, + "query fieldIssuedSoil($season: Int, $field_contains_nocase: String) {\n fieldHourlySnapshots(\n first: 1\n orderBy: season\n orderDirection: desc\n where: {season: $season, field_contains_nocase: $field_contains_nocase}\n ) {\n issuedSoil\n season\n soil\n }\n}": typeof types.FieldIssuedSoilDocument, + "query FieldSnapshots($fieldId: Bytes!, $first: Int!) {\n fieldHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {field_: {id: $fieldId}}\n ) {\n blocksToSoldOutSoil\n caseId\n deltaHarvestablePods\n deltaHarvestedPods\n deltaIssuedSoil\n deltaNumberOfSowers\n deltaNumberOfSows\n deltaPodIndex\n deltaPodRate\n deltaRealRateOfReturn\n deltaSoil\n deltaSownBeans\n deltaTemperature\n deltaUnharvestablePods\n harvestablePods\n harvestedPods\n id\n issuedSoil\n numberOfSowers\n numberOfSows\n podIndex\n podRate\n realRateOfReturn\n season\n seasonBlock\n soil\n soilSoldOut\n sownBeans\n temperature\n unharvestablePods\n updatedAt\n }\n}": typeof types.FieldSnapshotsDocument, + "query BeanstalkSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n }\n}": typeof types.BeanstalkSeasonsTableDocument, + "query SiloSnapshots($first: Int!, $id: Bytes!) {\n siloHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {silo_: {id: $id}}\n ) {\n beanToMaxLpGpPerBdvRatio\n deltaBeanMints\n season\n }\n}": typeof types.SiloSnapshotsDocument, + "query SiloYields {\n siloYields(\n orderBy: season\n orderDirection: desc\n where: {emaWindow: ROLLING_30_DAY}\n first: 1\n ) {\n beansPerSeasonEMA\n beta\n createdAt\n season\n id\n u\n whitelistedTokens\n emaWindow\n tokenAPYS {\n beanAPY\n stalkAPY\n season\n createdAt\n token\n }\n }\n}": typeof types.SiloYieldsDocument, + "query AllMarketActivity($first: Int = 1000, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(first: $first, where: {createdAt_gt: $fill_createdAt_gt}) {\n ...PodFill\n }\n}": typeof types.AllMarketActivityDocument, + "query AllPodListings($first: Int = 1000, $status: MarketStatus = ACTIVE, $maxHarvestableIndex: BigInt!, $skip: Int = 0) {\n podListings(\n first: $first\n skip: $skip\n where: {status: $status, maxHarvestableIndex_gt: $maxHarvestableIndex, remainingAmount_gt: \"100000\"}\n orderBy: index\n orderDirection: asc\n ) {\n ...PodListing\n }\n}": typeof types.AllPodListingsDocument, + "query AllPodOrders($first: Int = 1000, $status: MarketStatus = ACTIVE, $skip: Int = 0) {\n podOrders(\n first: $first\n skip: $skip\n orderBy: createdAt\n orderDirection: desc\n where: {status: $status}\n ) {\n ...PodOrder\n }\n}": typeof types.AllPodOrdersDocument, + "query FarmerMarketActivity($first: Int = 1000, $account: String!, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {farmer: $account, createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {farmer: $account, createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(\n first: $first\n where: {and: [{createdAt_gt: $fill_createdAt_gt}, {or: [{fromFarmer: $account}, {toFarmer: $account}]}]}\n ) {\n ...PodFill\n }\n}": typeof types.FarmerMarketActivityDocument, + "fragment PodFill on PodFill {\n id\n placeInLine\n amount\n index\n start\n costInBeans\n fromFarmer {\n id\n }\n toFarmer {\n id\n }\n listing {\n id\n originalAmount\n }\n order {\n id\n beanAmount\n }\n createdAt\n}": typeof types.PodFillFragmentDoc, + "fragment PodListing on PodListing {\n id\n farmer {\n id\n }\n historyID\n index\n start\n mode\n pricingType\n pricePerPod\n pricingFunction\n maxHarvestableIndex\n minFillAmount\n originalIndex\n originalPlaceInLine\n originalAmount\n filled\n amount\n remainingAmount\n filledAmount\n fill {\n placeInLine\n }\n status\n createdAt\n updatedAt\n creationHash\n}": typeof types.PodListingFragmentDoc, + "fragment PodOrder on PodOrder {\n id\n farmer {\n id\n }\n historyID\n pricingType\n pricePerPod\n pricingFunction\n maxPlaceInLine\n minFillAmount\n beanAmount\n podAmountFilled\n beanAmountFilled\n status\n createdAt\n updatedAt\n creationHash\n}": typeof types.PodOrderFragmentDoc, + "query FarmerSeasonalSilo($from: Int, $to: Int, $account: String) {\n siloHourlySnapshots(\n where: {silo: $account, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n createdAt\n plantedBeans\n stalk\n germinatingStalk\n depositedBDV\n }\n}": typeof types.FarmerSeasonalSiloDocument, + "query FarmerSeasonalSiloAssetToken($from: Int, $to: Int, $siloAsset: String) {\n siloAssetHourlySnapshots(\n where: {siloAsset: $siloAsset, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n depositedAmount\n depositedBDV\n deltaDepositedBDV\n deltaDepositedAmount\n createdAt\n }\n}": typeof types.FarmerSeasonalSiloAssetTokenDocument, + "query BeanstalkSeasonalSiloActiveFarmers($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo, stalk_gt: 0}\n first: 1000\n orderBy: season\n orderDirection: desc\n ) {\n id\n season\n activeFarmers\n }\n}": typeof types.BeanstalkSeasonalSiloActiveFarmersDocument, + "query BeanstalkSeasonalField($from: Int, $to: Int, $field: String) {\n fieldHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, field: $field}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n podRate\n temperature\n podIndex\n harvestableIndex\n sownBeans\n harvestedPods\n cultivationFactor\n cultivationTemperature\n issuedSoil\n deltaSownBeans\n createdAt\n }\n}": typeof types.BeanstalkSeasonalFieldDocument, + "query SeasonalGaugesInfo($from: Int, $to: Int) {\n gaugesInfoHourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n g2BonusStalkPerBdv\n g2MaxConvertCapacity\n season\n createdAt\n }\n}": typeof types.SeasonalGaugesInfoDocument, + "query BeanstalkSeasonalMarketPerformance($from: Int, $to: Int) {\n marketPerformanceSeasonals(\n where: {season_gte: $from, season_lte: $to, valid: true}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n timestamp\n thisSeasonTokenUsdPrices\n usdChange\n percentChange\n totalUsdChange\n totalPercentChange\n cumulativeUsdChange\n cumulativePercentChange\n cumulativeTotalUsdChange\n cumulativeTotalPercentChange\n silo {\n allWhitelistedTokens\n }\n }\n}": typeof types.BeanstalkSeasonalMarketPerformanceDocument, + "query SeasonalNewPintoSnapshots($first: Int!) {\n seasons(first: $first, orderBy: season, orderDirection: desc) {\n season\n deltaBeans\n rewardBeans\n floodSiloBeans\n floodFieldBeans\n incentiveBeans\n }\n}": typeof types.SeasonalNewPintoSnapshotsDocument, + "query BeanstalkSeasonalSilo($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n stalk\n avgGrownStalkPerBdvPerSeason\n depositedBDV\n createdAt\n }\n}": typeof types.BeanstalkSeasonalSiloDocument, + "query BeanstalkSeasonalWrappedDepositERC20($from: Int, $to: Int) {\n wrappedDepositERC20HourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n orderBy: season\n orderDirection: asc\n first: 1000\n ) {\n id\n season\n supply\n redeemRate\n apy24h\n apy7d\n apy30d\n apy90d\n createdAt\n }\n}": typeof types.BeanstalkSeasonalWrappedDepositErc20Document, +}; +const documents: Documents = { + "query BeanstalkAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n createdAt\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n cultivationFactor\n cultivationTemperature\n harvestableIndex\n harvestablePods\n harvestedPods\n numberOfSowers\n numberOfSows\n podIndex\n realRateOfReturn\n seasonBlock\n soil\n soilSoldOut\n unharvestablePods\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n stalk\n }\n}": types.BeanstalkAdvancedChartDocument, + "query FarmerPlots($account: ID!) {\n farmer(id: $account) {\n plots(\n first: 1000\n where: {pods_gt: \"50\", fullyHarvested: false}\n orderBy: index\n orderDirection: asc\n ) {\n beansPerPod\n createdAt\n creationHash\n fullyHarvested\n harvestablePods\n harvestedPods\n id\n index\n pods\n season\n source\n sourceHash\n preTransferSource\n preTransferOwner {\n id\n }\n updatedAt\n updatedAtBlock\n listing {\n id\n }\n }\n }\n}": types.FarmerPlotsDocument, + "query FarmerSiloBalances($account: ID!, $season: Int!) {\n farmer(id: $account) {\n deposited: deposits(\n orderBy: season\n orderDirection: asc\n where: {depositedAmount_gt: 0}\n ) {\n season\n stem\n token\n depositedAmount\n depositedBDV\n }\n withdrawn: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_gt: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n claimable: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_lte: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n }\n}": types.FarmerSiloBalancesDocument, + "query fieldIssuedSoil($season: Int, $field_contains_nocase: String) {\n fieldHourlySnapshots(\n first: 1\n orderBy: season\n orderDirection: desc\n where: {season: $season, field_contains_nocase: $field_contains_nocase}\n ) {\n issuedSoil\n season\n soil\n }\n}": types.FieldIssuedSoilDocument, + "query FieldSnapshots($fieldId: Bytes!, $first: Int!) {\n fieldHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {field_: {id: $fieldId}}\n ) {\n blocksToSoldOutSoil\n caseId\n deltaHarvestablePods\n deltaHarvestedPods\n deltaIssuedSoil\n deltaNumberOfSowers\n deltaNumberOfSows\n deltaPodIndex\n deltaPodRate\n deltaRealRateOfReturn\n deltaSoil\n deltaSownBeans\n deltaTemperature\n deltaUnharvestablePods\n harvestablePods\n harvestedPods\n id\n issuedSoil\n numberOfSowers\n numberOfSows\n podIndex\n podRate\n realRateOfReturn\n season\n seasonBlock\n soil\n soilSoldOut\n sownBeans\n temperature\n unharvestablePods\n updatedAt\n }\n}": types.FieldSnapshotsDocument, + "query BeanstalkSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n }\n}": types.BeanstalkSeasonsTableDocument, + "query SiloSnapshots($first: Int!, $id: Bytes!) {\n siloHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {silo_: {id: $id}}\n ) {\n beanToMaxLpGpPerBdvRatio\n deltaBeanMints\n season\n }\n}": types.SiloSnapshotsDocument, + "query SiloYields {\n siloYields(\n orderBy: season\n orderDirection: desc\n where: {emaWindow: ROLLING_30_DAY}\n first: 1\n ) {\n beansPerSeasonEMA\n beta\n createdAt\n season\n id\n u\n whitelistedTokens\n emaWindow\n tokenAPYS {\n beanAPY\n stalkAPY\n season\n createdAt\n token\n }\n }\n}": types.SiloYieldsDocument, + "query AllMarketActivity($first: Int = 1000, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(first: $first, where: {createdAt_gt: $fill_createdAt_gt}) {\n ...PodFill\n }\n}": types.AllMarketActivityDocument, + "query AllPodListings($first: Int = 1000, $status: MarketStatus = ACTIVE, $maxHarvestableIndex: BigInt!, $skip: Int = 0) {\n podListings(\n first: $first\n skip: $skip\n where: {status: $status, maxHarvestableIndex_gt: $maxHarvestableIndex, remainingAmount_gt: \"100000\"}\n orderBy: index\n orderDirection: asc\n ) {\n ...PodListing\n }\n}": types.AllPodListingsDocument, + "query AllPodOrders($first: Int = 1000, $status: MarketStatus = ACTIVE, $skip: Int = 0) {\n podOrders(\n first: $first\n skip: $skip\n orderBy: createdAt\n orderDirection: desc\n where: {status: $status}\n ) {\n ...PodOrder\n }\n}": types.AllPodOrdersDocument, + "query FarmerMarketActivity($first: Int = 1000, $account: String!, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {farmer: $account, createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {farmer: $account, createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(\n first: $first\n where: {and: [{createdAt_gt: $fill_createdAt_gt}, {or: [{fromFarmer: $account}, {toFarmer: $account}]}]}\n ) {\n ...PodFill\n }\n}": types.FarmerMarketActivityDocument, + "fragment PodFill on PodFill {\n id\n placeInLine\n amount\n index\n start\n costInBeans\n fromFarmer {\n id\n }\n toFarmer {\n id\n }\n listing {\n id\n originalAmount\n }\n order {\n id\n beanAmount\n }\n createdAt\n}": types.PodFillFragmentDoc, + "fragment PodListing on PodListing {\n id\n farmer {\n id\n }\n historyID\n index\n start\n mode\n pricingType\n pricePerPod\n pricingFunction\n maxHarvestableIndex\n minFillAmount\n originalIndex\n originalPlaceInLine\n originalAmount\n filled\n amount\n remainingAmount\n filledAmount\n fill {\n placeInLine\n }\n status\n createdAt\n updatedAt\n creationHash\n}": types.PodListingFragmentDoc, + "fragment PodOrder on PodOrder {\n id\n farmer {\n id\n }\n historyID\n pricingType\n pricePerPod\n pricingFunction\n maxPlaceInLine\n minFillAmount\n beanAmount\n podAmountFilled\n beanAmountFilled\n status\n createdAt\n updatedAt\n creationHash\n}": types.PodOrderFragmentDoc, + "query FarmerSeasonalSilo($from: Int, $to: Int, $account: String) {\n siloHourlySnapshots(\n where: {silo: $account, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n createdAt\n plantedBeans\n stalk\n germinatingStalk\n depositedBDV\n }\n}": types.FarmerSeasonalSiloDocument, + "query FarmerSeasonalSiloAssetToken($from: Int, $to: Int, $siloAsset: String) {\n siloAssetHourlySnapshots(\n where: {siloAsset: $siloAsset, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n depositedAmount\n depositedBDV\n deltaDepositedBDV\n deltaDepositedAmount\n createdAt\n }\n}": types.FarmerSeasonalSiloAssetTokenDocument, + "query BeanstalkSeasonalSiloActiveFarmers($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo, stalk_gt: 0}\n first: 1000\n orderBy: season\n orderDirection: desc\n ) {\n id\n season\n activeFarmers\n }\n}": types.BeanstalkSeasonalSiloActiveFarmersDocument, + "query BeanstalkSeasonalField($from: Int, $to: Int, $field: String) {\n fieldHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, field: $field}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n podRate\n temperature\n podIndex\n harvestableIndex\n sownBeans\n harvestedPods\n cultivationFactor\n cultivationTemperature\n issuedSoil\n deltaSownBeans\n createdAt\n }\n}": types.BeanstalkSeasonalFieldDocument, + "query SeasonalGaugesInfo($from: Int, $to: Int) {\n gaugesInfoHourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n g2BonusStalkPerBdv\n g2MaxConvertCapacity\n season\n createdAt\n }\n}": types.SeasonalGaugesInfoDocument, + "query BeanstalkSeasonalMarketPerformance($from: Int, $to: Int) {\n marketPerformanceSeasonals(\n where: {season_gte: $from, season_lte: $to, valid: true}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n timestamp\n thisSeasonTokenUsdPrices\n usdChange\n percentChange\n totalUsdChange\n totalPercentChange\n cumulativeUsdChange\n cumulativePercentChange\n cumulativeTotalUsdChange\n cumulativeTotalPercentChange\n silo {\n allWhitelistedTokens\n }\n }\n}": types.BeanstalkSeasonalMarketPerformanceDocument, + "query SeasonalNewPintoSnapshots($first: Int!) {\n seasons(first: $first, orderBy: season, orderDirection: desc) {\n season\n deltaBeans\n rewardBeans\n floodSiloBeans\n floodFieldBeans\n incentiveBeans\n }\n}": types.SeasonalNewPintoSnapshotsDocument, + "query BeanstalkSeasonalSilo($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n stalk\n avgGrownStalkPerBdvPerSeason\n depositedBDV\n createdAt\n }\n}": types.BeanstalkSeasonalSiloDocument, + "query BeanstalkSeasonalWrappedDepositERC20($from: Int, $to: Int) {\n wrappedDepositERC20HourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n orderBy: season\n orderDirection: asc\n first: 1000\n ) {\n id\n season\n supply\n redeemRate\n apy24h\n apy7d\n apy30d\n apy90d\n createdAt\n }\n}": types.BeanstalkSeasonalWrappedDepositErc20Document, +}; + +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + * + * + * @example + * ```ts + * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`); + * ``` + * + * The query argument is unknown! + * Please regenerate the types. + */ +export function graphql(source: string): unknown; + +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n createdAt\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n cultivationFactor\n cultivationTemperature\n harvestableIndex\n harvestablePods\n harvestedPods\n numberOfSowers\n numberOfSows\n podIndex\n realRateOfReturn\n seasonBlock\n soil\n soilSoldOut\n unharvestablePods\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n stalk\n }\n}"): (typeof documents)["query BeanstalkAdvancedChart($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n createdAt\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n cultivationFactor\n cultivationTemperature\n harvestableIndex\n harvestablePods\n harvestedPods\n numberOfSowers\n numberOfSows\n podIndex\n realRateOfReturn\n seasonBlock\n soil\n soilSoldOut\n unharvestablePods\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n stalk\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query FarmerPlots($account: ID!) {\n farmer(id: $account) {\n plots(\n first: 1000\n where: {pods_gt: \"50\", fullyHarvested: false}\n orderBy: index\n orderDirection: asc\n ) {\n beansPerPod\n createdAt\n creationHash\n fullyHarvested\n harvestablePods\n harvestedPods\n id\n index\n pods\n season\n source\n sourceHash\n preTransferSource\n preTransferOwner {\n id\n }\n updatedAt\n updatedAtBlock\n listing {\n id\n }\n }\n }\n}"): (typeof documents)["query FarmerPlots($account: ID!) {\n farmer(id: $account) {\n plots(\n first: 1000\n where: {pods_gt: \"50\", fullyHarvested: false}\n orderBy: index\n orderDirection: asc\n ) {\n beansPerPod\n createdAt\n creationHash\n fullyHarvested\n harvestablePods\n harvestedPods\n id\n index\n pods\n season\n source\n sourceHash\n preTransferSource\n preTransferOwner {\n id\n }\n updatedAt\n updatedAtBlock\n listing {\n id\n }\n }\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query FarmerSiloBalances($account: ID!, $season: Int!) {\n farmer(id: $account) {\n deposited: deposits(\n orderBy: season\n orderDirection: asc\n where: {depositedAmount_gt: 0}\n ) {\n season\n stem\n token\n depositedAmount\n depositedBDV\n }\n withdrawn: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_gt: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n claimable: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_lte: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n }\n}"): (typeof documents)["query FarmerSiloBalances($account: ID!, $season: Int!) {\n farmer(id: $account) {\n deposited: deposits(\n orderBy: season\n orderDirection: asc\n where: {depositedAmount_gt: 0}\n ) {\n season\n stem\n token\n depositedAmount\n depositedBDV\n }\n withdrawn: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_gt: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n claimable: withdraws(\n orderBy: withdrawSeason\n orderDirection: asc\n where: {claimableSeason_lte: $season, claimed: false}\n ) {\n season: withdrawSeason\n token\n amount\n }\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query fieldIssuedSoil($season: Int, $field_contains_nocase: String) {\n fieldHourlySnapshots(\n first: 1\n orderBy: season\n orderDirection: desc\n where: {season: $season, field_contains_nocase: $field_contains_nocase}\n ) {\n issuedSoil\n season\n soil\n }\n}"): (typeof documents)["query fieldIssuedSoil($season: Int, $field_contains_nocase: String) {\n fieldHourlySnapshots(\n first: 1\n orderBy: season\n orderDirection: desc\n where: {season: $season, field_contains_nocase: $field_contains_nocase}\n ) {\n issuedSoil\n season\n soil\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query FieldSnapshots($fieldId: Bytes!, $first: Int!) {\n fieldHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {field_: {id: $fieldId}}\n ) {\n blocksToSoldOutSoil\n caseId\n deltaHarvestablePods\n deltaHarvestedPods\n deltaIssuedSoil\n deltaNumberOfSowers\n deltaNumberOfSows\n deltaPodIndex\n deltaPodRate\n deltaRealRateOfReturn\n deltaSoil\n deltaSownBeans\n deltaTemperature\n deltaUnharvestablePods\n harvestablePods\n harvestedPods\n id\n issuedSoil\n numberOfSowers\n numberOfSows\n podIndex\n podRate\n realRateOfReturn\n season\n seasonBlock\n soil\n soilSoldOut\n sownBeans\n temperature\n unharvestablePods\n updatedAt\n }\n}"): (typeof documents)["query FieldSnapshots($fieldId: Bytes!, $first: Int!) {\n fieldHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {field_: {id: $fieldId}}\n ) {\n blocksToSoldOutSoil\n caseId\n deltaHarvestablePods\n deltaHarvestedPods\n deltaIssuedSoil\n deltaNumberOfSowers\n deltaNumberOfSows\n deltaPodIndex\n deltaPodRate\n deltaRealRateOfReturn\n deltaSoil\n deltaSownBeans\n deltaTemperature\n deltaUnharvestablePods\n harvestablePods\n harvestedPods\n id\n issuedSoil\n numberOfSowers\n numberOfSows\n podIndex\n podRate\n realRateOfReturn\n season\n seasonBlock\n soil\n soilSoldOut\n sownBeans\n temperature\n unharvestablePods\n updatedAt\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n }\n}"): (typeof documents)["query BeanstalkSeasonsTable($from: Int, $to: Int) {\n seasons(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {season_gte: $from, season_lte: $to}\n ) {\n id\n sunriseBlock\n rewardBeans\n price\n deltaBeans\n raining\n season\n }\n fieldHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {field: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n caseId\n issuedSoil\n deltaSownBeans\n sownBeans\n deltaPodDemand\n blocksToSoldOutSoil\n podRate\n temperature\n deltaTemperature\n season\n }\n siloHourlySnapshots(\n first: 1000\n orderBy: season\n orderDirection: desc\n where: {silo: \"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f\", season_gte: $from, season_lte: $to}\n ) {\n id\n beanToMaxLpGpPerBdvRatio\n deltaBeanToMaxLpGpPerBdvRatio\n season\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query SiloSnapshots($first: Int!, $id: Bytes!) {\n siloHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {silo_: {id: $id}}\n ) {\n beanToMaxLpGpPerBdvRatio\n deltaBeanMints\n season\n }\n}"): (typeof documents)["query SiloSnapshots($first: Int!, $id: Bytes!) {\n siloHourlySnapshots(\n first: $first\n orderBy: season\n orderDirection: desc\n where: {silo_: {id: $id}}\n ) {\n beanToMaxLpGpPerBdvRatio\n deltaBeanMints\n season\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query SiloYields {\n siloYields(\n orderBy: season\n orderDirection: desc\n where: {emaWindow: ROLLING_30_DAY}\n first: 1\n ) {\n beansPerSeasonEMA\n beta\n createdAt\n season\n id\n u\n whitelistedTokens\n emaWindow\n tokenAPYS {\n beanAPY\n stalkAPY\n season\n createdAt\n token\n }\n }\n}"): (typeof documents)["query SiloYields {\n siloYields(\n orderBy: season\n orderDirection: desc\n where: {emaWindow: ROLLING_30_DAY}\n first: 1\n ) {\n beansPerSeasonEMA\n beta\n createdAt\n season\n id\n u\n whitelistedTokens\n emaWindow\n tokenAPYS {\n beanAPY\n stalkAPY\n season\n createdAt\n token\n }\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query AllMarketActivity($first: Int = 1000, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(first: $first, where: {createdAt_gt: $fill_createdAt_gt}) {\n ...PodFill\n }\n}"): (typeof documents)["query AllMarketActivity($first: Int = 1000, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(first: $first, where: {createdAt_gt: $fill_createdAt_gt}) {\n ...PodFill\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query AllPodListings($first: Int = 1000, $status: MarketStatus = ACTIVE, $maxHarvestableIndex: BigInt!, $skip: Int = 0) {\n podListings(\n first: $first\n skip: $skip\n where: {status: $status, maxHarvestableIndex_gt: $maxHarvestableIndex, remainingAmount_gt: \"100000\"}\n orderBy: index\n orderDirection: asc\n ) {\n ...PodListing\n }\n}"): (typeof documents)["query AllPodListings($first: Int = 1000, $status: MarketStatus = ACTIVE, $maxHarvestableIndex: BigInt!, $skip: Int = 0) {\n podListings(\n first: $first\n skip: $skip\n where: {status: $status, maxHarvestableIndex_gt: $maxHarvestableIndex, remainingAmount_gt: \"100000\"}\n orderBy: index\n orderDirection: asc\n ) {\n ...PodListing\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query AllPodOrders($first: Int = 1000, $status: MarketStatus = ACTIVE, $skip: Int = 0) {\n podOrders(\n first: $first\n skip: $skip\n orderBy: createdAt\n orderDirection: desc\n where: {status: $status}\n ) {\n ...PodOrder\n }\n}"): (typeof documents)["query AllPodOrders($first: Int = 1000, $status: MarketStatus = ACTIVE, $skip: Int = 0) {\n podOrders(\n first: $first\n skip: $skip\n orderBy: createdAt\n orderDirection: desc\n where: {status: $status}\n ) {\n ...PodOrder\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query FarmerMarketActivity($first: Int = 1000, $account: String!, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {farmer: $account, createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {farmer: $account, createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(\n first: $first\n where: {and: [{createdAt_gt: $fill_createdAt_gt}, {or: [{fromFarmer: $account}, {toFarmer: $account}]}]}\n ) {\n ...PodFill\n }\n}"): (typeof documents)["query FarmerMarketActivity($first: Int = 1000, $account: String!, $listings_createdAt_gt: BigInt, $orders_createdAt_gt: BigInt, $fill_createdAt_gt: BigInt) {\n podListings(\n first: $first\n where: {farmer: $account, createdAt_gt: $listings_createdAt_gt, status_not: FILLED_PARTIAL}\n ) {\n ...PodListing\n }\n podOrders(\n first: $first\n orderBy: createdAt\n orderDirection: desc\n where: {farmer: $account, createdAt_gt: $orders_createdAt_gt}\n ) {\n ...PodOrder\n }\n podFills(\n first: $first\n where: {and: [{createdAt_gt: $fill_createdAt_gt}, {or: [{fromFarmer: $account}, {toFarmer: $account}]}]}\n ) {\n ...PodFill\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "fragment PodFill on PodFill {\n id\n placeInLine\n amount\n index\n start\n costInBeans\n fromFarmer {\n id\n }\n toFarmer {\n id\n }\n listing {\n id\n originalAmount\n }\n order {\n id\n beanAmount\n }\n createdAt\n}"): (typeof documents)["fragment PodFill on PodFill {\n id\n placeInLine\n amount\n index\n start\n costInBeans\n fromFarmer {\n id\n }\n toFarmer {\n id\n }\n listing {\n id\n originalAmount\n }\n order {\n id\n beanAmount\n }\n createdAt\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "fragment PodListing on PodListing {\n id\n farmer {\n id\n }\n historyID\n index\n start\n mode\n pricingType\n pricePerPod\n pricingFunction\n maxHarvestableIndex\n minFillAmount\n originalIndex\n originalPlaceInLine\n originalAmount\n filled\n amount\n remainingAmount\n filledAmount\n fill {\n placeInLine\n }\n status\n createdAt\n updatedAt\n creationHash\n}"): (typeof documents)["fragment PodListing on PodListing {\n id\n farmer {\n id\n }\n historyID\n index\n start\n mode\n pricingType\n pricePerPod\n pricingFunction\n maxHarvestableIndex\n minFillAmount\n originalIndex\n originalPlaceInLine\n originalAmount\n filled\n amount\n remainingAmount\n filledAmount\n fill {\n placeInLine\n }\n status\n createdAt\n updatedAt\n creationHash\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "fragment PodOrder on PodOrder {\n id\n farmer {\n id\n }\n historyID\n pricingType\n pricePerPod\n pricingFunction\n maxPlaceInLine\n minFillAmount\n beanAmount\n podAmountFilled\n beanAmountFilled\n status\n createdAt\n updatedAt\n creationHash\n}"): (typeof documents)["fragment PodOrder on PodOrder {\n id\n farmer {\n id\n }\n historyID\n pricingType\n pricePerPod\n pricingFunction\n maxPlaceInLine\n minFillAmount\n beanAmount\n podAmountFilled\n beanAmountFilled\n status\n createdAt\n updatedAt\n creationHash\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query FarmerSeasonalSilo($from: Int, $to: Int, $account: String) {\n siloHourlySnapshots(\n where: {silo: $account, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n createdAt\n plantedBeans\n stalk\n germinatingStalk\n depositedBDV\n }\n}"): (typeof documents)["query FarmerSeasonalSilo($from: Int, $to: Int, $account: String) {\n siloHourlySnapshots(\n where: {silo: $account, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n createdAt\n plantedBeans\n stalk\n germinatingStalk\n depositedBDV\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query FarmerSeasonalSiloAssetToken($from: Int, $to: Int, $siloAsset: String) {\n siloAssetHourlySnapshots(\n where: {siloAsset: $siloAsset, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n depositedAmount\n depositedBDV\n deltaDepositedBDV\n deltaDepositedAmount\n createdAt\n }\n}"): (typeof documents)["query FarmerSeasonalSiloAssetToken($from: Int, $to: Int, $siloAsset: String) {\n siloAssetHourlySnapshots(\n where: {siloAsset: $siloAsset, season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n depositedAmount\n depositedBDV\n deltaDepositedBDV\n deltaDepositedAmount\n createdAt\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkSeasonalSiloActiveFarmers($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo, stalk_gt: 0}\n first: 1000\n orderBy: season\n orderDirection: desc\n ) {\n id\n season\n activeFarmers\n }\n}"): (typeof documents)["query BeanstalkSeasonalSiloActiveFarmers($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo, stalk_gt: 0}\n first: 1000\n orderBy: season\n orderDirection: desc\n ) {\n id\n season\n activeFarmers\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkSeasonalField($from: Int, $to: Int, $field: String) {\n fieldHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, field: $field}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n podRate\n temperature\n podIndex\n harvestableIndex\n sownBeans\n harvestedPods\n cultivationFactor\n cultivationTemperature\n issuedSoil\n deltaSownBeans\n createdAt\n }\n}"): (typeof documents)["query BeanstalkSeasonalField($from: Int, $to: Int, $field: String) {\n fieldHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, field: $field}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n podRate\n temperature\n podIndex\n harvestableIndex\n sownBeans\n harvestedPods\n cultivationFactor\n cultivationTemperature\n issuedSoil\n deltaSownBeans\n createdAt\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query SeasonalGaugesInfo($from: Int, $to: Int) {\n gaugesInfoHourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n g2BonusStalkPerBdv\n g2MaxConvertCapacity\n season\n createdAt\n }\n}"): (typeof documents)["query SeasonalGaugesInfo($from: Int, $to: Int) {\n gaugesInfoHourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n g2BonusStalkPerBdv\n g2MaxConvertCapacity\n season\n createdAt\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkSeasonalMarketPerformance($from: Int, $to: Int) {\n marketPerformanceSeasonals(\n where: {season_gte: $from, season_lte: $to, valid: true}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n timestamp\n thisSeasonTokenUsdPrices\n usdChange\n percentChange\n totalUsdChange\n totalPercentChange\n cumulativeUsdChange\n cumulativePercentChange\n cumulativeTotalUsdChange\n cumulativeTotalPercentChange\n silo {\n allWhitelistedTokens\n }\n }\n}"): (typeof documents)["query BeanstalkSeasonalMarketPerformance($from: Int, $to: Int) {\n marketPerformanceSeasonals(\n where: {season_gte: $from, season_lte: $to, valid: true}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n timestamp\n thisSeasonTokenUsdPrices\n usdChange\n percentChange\n totalUsdChange\n totalPercentChange\n cumulativeUsdChange\n cumulativePercentChange\n cumulativeTotalUsdChange\n cumulativeTotalPercentChange\n silo {\n allWhitelistedTokens\n }\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query SeasonalNewPintoSnapshots($first: Int!) {\n seasons(first: $first, orderBy: season, orderDirection: desc) {\n season\n deltaBeans\n rewardBeans\n floodSiloBeans\n floodFieldBeans\n incentiveBeans\n }\n}"): (typeof documents)["query SeasonalNewPintoSnapshots($first: Int!) {\n seasons(first: $first, orderBy: season, orderDirection: desc) {\n season\n deltaBeans\n rewardBeans\n floodSiloBeans\n floodFieldBeans\n incentiveBeans\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkSeasonalSilo($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n stalk\n avgGrownStalkPerBdvPerSeason\n depositedBDV\n createdAt\n }\n}"): (typeof documents)["query BeanstalkSeasonalSilo($from: Int, $to: Int, $silo: String) {\n siloHourlySnapshots(\n where: {season_gte: $from, season_lte: $to, silo: $silo}\n first: 1000\n orderBy: season\n orderDirection: asc\n ) {\n id\n season\n stalk\n avgGrownStalkPerBdvPerSeason\n depositedBDV\n createdAt\n }\n}"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "query BeanstalkSeasonalWrappedDepositERC20($from: Int, $to: Int) {\n wrappedDepositERC20HourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n orderBy: season\n orderDirection: asc\n first: 1000\n ) {\n id\n season\n supply\n redeemRate\n apy24h\n apy7d\n apy30d\n apy90d\n createdAt\n }\n}"): (typeof documents)["query BeanstalkSeasonalWrappedDepositERC20($from: Int, $to: Int) {\n wrappedDepositERC20HourlySnapshots(\n where: {season_gte: $from, season_lte: $to}\n orderBy: season\n orderDirection: asc\n first: 1000\n ) {\n id\n season\n supply\n redeemRate\n apy24h\n apy7d\n apy30d\n apy90d\n createdAt\n }\n}"]; + +export function graphql(source: string) { + return (documents as any)[source] ?? {}; +} + +export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; \ No newline at end of file diff --git a/src/generated/gql/pintostalk/graphql.ts b/src/generated/gql/pintostalk/graphql.ts new file mode 100644 index 000000000..5dea95d18 --- /dev/null +++ b/src/generated/gql/pintostalk/graphql.ts @@ -0,0 +1,15183 @@ +/* eslint-disable */ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + BigDecimal: { input: any; output: any; } + BigInt: { input: any; output: any; } + Bytes: { input: any; output: any; } + /** + * 8 bytes signed integer + * + */ + Int8: { input: any; output: any; } + /** + * A string representation of microseconds UNIX timestamp (16 digits) + * + */ + Timestamp: { input: any; output: any; } +}; + +export enum Aggregation_Interval { + Day = 'day', + Hour = 'hour' +} + +export type Beanstalk = { + __typename?: 'Beanstalk'; + /** Array of the addresses for all active farmers in the silo */ + activeFarmers: Array; + /** Array of the addresses for all farmers that had silo transfers and need stalk/roots updated */ + farmersToUpdate: Array; + /** Address of the fertilizer contract */ + fertilizer1155?: Maybe; + /** Field level data */ + field: Field; + /** 'beanstalk' */ + id: Scalars['ID']['output']; + /** Last season called */ + lastSeason: Scalars['Int']['output']; + /** Season specific data */ + seasons: Array; + /** Silo level data */ + silo: Silo; + /** Bean token address of the protocol */ + token: Scalars['Bytes']['output']; + /** Supported wrapped deposit tokens */ + wrappedDepositTokens: Array; +}; + + +export type BeanstalkSeasonsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type BeanstalkWrappedDepositTokensArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Beanstalk_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + activeFarmers?: InputMaybe>; + activeFarmers_contains?: InputMaybe>; + activeFarmers_contains_nocase?: InputMaybe>; + activeFarmers_not?: InputMaybe>; + activeFarmers_not_contains?: InputMaybe>; + activeFarmers_not_contains_nocase?: InputMaybe>; + and?: InputMaybe>>; + farmersToUpdate?: InputMaybe>; + farmersToUpdate_contains?: InputMaybe>; + farmersToUpdate_contains_nocase?: InputMaybe>; + farmersToUpdate_not?: InputMaybe>; + farmersToUpdate_not_contains?: InputMaybe>; + farmersToUpdate_not_contains_nocase?: InputMaybe>; + fertilizer1155?: InputMaybe; + fertilizer1155_contains?: InputMaybe; + fertilizer1155_gt?: InputMaybe; + fertilizer1155_gte?: InputMaybe; + fertilizer1155_in?: InputMaybe>; + fertilizer1155_lt?: InputMaybe; + fertilizer1155_lte?: InputMaybe; + fertilizer1155_not?: InputMaybe; + fertilizer1155_not_contains?: InputMaybe; + fertilizer1155_not_in?: InputMaybe>; + field_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastSeason?: InputMaybe; + lastSeason_gt?: InputMaybe; + lastSeason_gte?: InputMaybe; + lastSeason_in?: InputMaybe>; + lastSeason_lt?: InputMaybe; + lastSeason_lte?: InputMaybe; + lastSeason_not?: InputMaybe; + lastSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; + seasons_?: InputMaybe; + silo_?: InputMaybe; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; + wrappedDepositTokens_?: InputMaybe; +}; + +export enum Beanstalk_OrderBy { + ActiveFarmers = 'activeFarmers', + FarmersToUpdate = 'farmersToUpdate', + Fertilizer1155 = 'fertilizer1155', + Field = 'field', + FieldCultivationFactor = 'field__cultivationFactor', + FieldCultivationTemperature = 'field__cultivationTemperature', + FieldHarvestableIndex = 'field__harvestableIndex', + FieldHarvestablePods = 'field__harvestablePods', + FieldHarvestedPods = 'field__harvestedPods', + FieldId = 'field__id', + FieldLastDailySnapshotDay = 'field__lastDailySnapshotDay', + FieldLastHourlySnapshotSeason = 'field__lastHourlySnapshotSeason', + FieldNumberOfSowers = 'field__numberOfSowers', + FieldNumberOfSows = 'field__numberOfSows', + FieldPodIndex = 'field__podIndex', + FieldPodRate = 'field__podRate', + FieldRealRateOfReturn = 'field__realRateOfReturn', + FieldSeason = 'field__season', + FieldSoil = 'field__soil', + FieldSownBeans = 'field__sownBeans', + FieldTemperature = 'field__temperature', + FieldUnharvestablePods = 'field__unharvestablePods', + FieldUnmigratedL1Pods = 'field__unmigratedL1Pods', + Id = 'id', + LastSeason = 'lastSeason', + Seasons = 'seasons', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Token = 'token', + WrappedDepositTokens = 'wrappedDepositTokens' +} + +export type BlockChangedFilter = { + number_gte: Scalars['Int']['input']; +}; + +export type Block_Height = { + hash?: InputMaybe; + number?: InputMaybe; + number_gte?: InputMaybe; +}; + +export type Chop = { + __typename?: 'Chop'; + /** The block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** The effective chop rate for this chop */ + chopRate: Scalars['BigDecimal']['output']; + /** Timestamp of this chop */ + createdAt: Scalars['BigInt']['output']; + /** Account address */ + farmer: Farmer; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** (chop|convert)-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Amount of underlying tokens `farmer` received */ + underlyingAmount: Scalars['BigInt']['output']; + /** Amount of bdv `farmer` received */ + underlyingBdv: Scalars['BigInt']['output']; + /** The underlying ERC20 token received by `farmer` as a result of this chop */ + underlyingToken: WhitelistTokenSetting; + /** Unripe token amount which was chopped */ + unripeAmount: Scalars['BigInt']['output']; + /** Bdv of the unripe tokens which were chopped */ + unripeBdv: Scalars['BigInt']['output']; + /** The unripe token which was chopped */ + unripeToken: UnripeToken; +}; + +export type Chop_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + chopRate?: InputMaybe; + chopRate_gt?: InputMaybe; + chopRate_gte?: InputMaybe; + chopRate_in?: InputMaybe>; + chopRate_lt?: InputMaybe; + chopRate_lte?: InputMaybe; + chopRate_not?: InputMaybe; + chopRate_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + underlyingAmount?: InputMaybe; + underlyingAmount_gt?: InputMaybe; + underlyingAmount_gte?: InputMaybe; + underlyingAmount_in?: InputMaybe>; + underlyingAmount_lt?: InputMaybe; + underlyingAmount_lte?: InputMaybe; + underlyingAmount_not?: InputMaybe; + underlyingAmount_not_in?: InputMaybe>; + underlyingBdv?: InputMaybe; + underlyingBdv_gt?: InputMaybe; + underlyingBdv_gte?: InputMaybe; + underlyingBdv_in?: InputMaybe>; + underlyingBdv_lt?: InputMaybe; + underlyingBdv_lte?: InputMaybe; + underlyingBdv_not?: InputMaybe; + underlyingBdv_not_in?: InputMaybe>; + underlyingToken?: InputMaybe; + underlyingToken_?: InputMaybe; + underlyingToken_contains?: InputMaybe; + underlyingToken_contains_nocase?: InputMaybe; + underlyingToken_ends_with?: InputMaybe; + underlyingToken_ends_with_nocase?: InputMaybe; + underlyingToken_gt?: InputMaybe; + underlyingToken_gte?: InputMaybe; + underlyingToken_in?: InputMaybe>; + underlyingToken_lt?: InputMaybe; + underlyingToken_lte?: InputMaybe; + underlyingToken_not?: InputMaybe; + underlyingToken_not_contains?: InputMaybe; + underlyingToken_not_contains_nocase?: InputMaybe; + underlyingToken_not_ends_with?: InputMaybe; + underlyingToken_not_ends_with_nocase?: InputMaybe; + underlyingToken_not_in?: InputMaybe>; + underlyingToken_not_starts_with?: InputMaybe; + underlyingToken_not_starts_with_nocase?: InputMaybe; + underlyingToken_starts_with?: InputMaybe; + underlyingToken_starts_with_nocase?: InputMaybe; + unripeAmount?: InputMaybe; + unripeAmount_gt?: InputMaybe; + unripeAmount_gte?: InputMaybe; + unripeAmount_in?: InputMaybe>; + unripeAmount_lt?: InputMaybe; + unripeAmount_lte?: InputMaybe; + unripeAmount_not?: InputMaybe; + unripeAmount_not_in?: InputMaybe>; + unripeBdv?: InputMaybe; + unripeBdv_gt?: InputMaybe; + unripeBdv_gte?: InputMaybe; + unripeBdv_in?: InputMaybe>; + unripeBdv_lt?: InputMaybe; + unripeBdv_lte?: InputMaybe; + unripeBdv_not?: InputMaybe; + unripeBdv_not_in?: InputMaybe>; + unripeToken?: InputMaybe; + unripeToken_?: InputMaybe; + unripeToken_contains?: InputMaybe; + unripeToken_contains_nocase?: InputMaybe; + unripeToken_ends_with?: InputMaybe; + unripeToken_ends_with_nocase?: InputMaybe; + unripeToken_gt?: InputMaybe; + unripeToken_gte?: InputMaybe; + unripeToken_in?: InputMaybe>; + unripeToken_lt?: InputMaybe; + unripeToken_lte?: InputMaybe; + unripeToken_not?: InputMaybe; + unripeToken_not_contains?: InputMaybe; + unripeToken_not_contains_nocase?: InputMaybe; + unripeToken_not_ends_with?: InputMaybe; + unripeToken_not_ends_with_nocase?: InputMaybe; + unripeToken_not_in?: InputMaybe>; + unripeToken_not_starts_with?: InputMaybe; + unripeToken_not_starts_with_nocase?: InputMaybe; + unripeToken_starts_with?: InputMaybe; + unripeToken_starts_with_nocase?: InputMaybe; +}; + +export enum Chop_OrderBy { + BlockNumber = 'blockNumber', + ChopRate = 'chopRate', + CreatedAt = 'createdAt', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Hash = 'hash', + Id = 'id', + UnderlyingAmount = 'underlyingAmount', + UnderlyingBdv = 'underlyingBdv', + UnderlyingToken = 'underlyingToken', + UnderlyingTokenDecimals = 'underlyingToken__decimals', + UnderlyingTokenGaugePoints = 'underlyingToken__gaugePoints', + UnderlyingTokenId = 'underlyingToken__id', + UnderlyingTokenIsGaugeEnabled = 'underlyingToken__isGaugeEnabled', + UnderlyingTokenLastDailySnapshotDay = 'underlyingToken__lastDailySnapshotDay', + UnderlyingTokenLastHourlySnapshotSeason = 'underlyingToken__lastHourlySnapshotSeason', + UnderlyingTokenMilestoneSeason = 'underlyingToken__milestoneSeason', + UnderlyingTokenOptimalPercentDepositedBdv = 'underlyingToken__optimalPercentDepositedBdv', + UnderlyingTokenSelector = 'underlyingToken__selector', + UnderlyingTokenStalkEarnedPerSeason = 'underlyingToken__stalkEarnedPerSeason', + UnderlyingTokenStalkIssuedPerBdv = 'underlyingToken__stalkIssuedPerBdv', + UnderlyingTokenStemTip = 'underlyingToken__stemTip', + UnderlyingTokenUpdatedAt = 'underlyingToken__updatedAt', + UnripeAmount = 'unripeAmount', + UnripeBdv = 'unripeBdv', + UnripeToken = 'unripeToken', + UnripeTokenAmountUnderlyingOne = 'unripeToken__amountUnderlyingOne', + UnripeTokenBdvUnderlyingOne = 'unripeToken__bdvUnderlyingOne', + UnripeTokenChopRate = 'unripeToken__chopRate', + UnripeTokenChoppableAmountOne = 'unripeToken__choppableAmountOne', + UnripeTokenChoppableBdvOne = 'unripeToken__choppableBdvOne', + UnripeTokenId = 'unripeToken__id', + UnripeTokenLastDailySnapshotDay = 'unripeToken__lastDailySnapshotDay', + UnripeTokenLastHourlySnapshotSeason = 'unripeToken__lastHourlySnapshotSeason', + UnripeTokenRecapPercent = 'unripeToken__recapPercent', + UnripeTokenTotalChoppedAmount = 'unripeToken__totalChoppedAmount', + UnripeTokenTotalChoppedBdv = 'unripeToken__totalChoppedBdv', + UnripeTokenTotalChoppedBdvReceived = 'unripeToken__totalChoppedBdvReceived', + UnripeTokenTotalUnderlying = 'unripeToken__totalUnderlying' +} + +export enum EmaWindow { + Rolling_7Day = 'ROLLING_7_DAY', + Rolling_24Hour = 'ROLLING_24_HOUR', + Rolling_30Day = 'ROLLING_30_DAY' +} + +export type Farmer = { + __typename?: 'Farmer'; + /** Block number in which this entity was created */ + creationBlock: Scalars['BigInt']['output']; + deposits: Array; + fertilizers: Array; + field?: Maybe; + fills: Array; + /** Address for the farmer */ + id: Scalars['Bytes']['output']; + listings: Array; + orders: Array; + plots: Array; + silo?: Maybe; + withdraws: Array; +}; + + +export type FarmerDepositsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerFertilizersArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerFillsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerListingsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerOrdersArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerPlotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FarmerWithdrawsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Farmer_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + creationBlock?: InputMaybe; + creationBlock_gt?: InputMaybe; + creationBlock_gte?: InputMaybe; + creationBlock_in?: InputMaybe>; + creationBlock_lt?: InputMaybe; + creationBlock_lte?: InputMaybe; + creationBlock_not?: InputMaybe; + creationBlock_not_in?: InputMaybe>; + deposits_?: InputMaybe; + fertilizers_?: InputMaybe; + field_?: InputMaybe; + fills_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + listings_?: InputMaybe; + or?: InputMaybe>>; + orders_?: InputMaybe; + plots_?: InputMaybe; + silo_?: InputMaybe; + withdraws_?: InputMaybe; +}; + +export enum Farmer_OrderBy { + CreationBlock = 'creationBlock', + Deposits = 'deposits', + Fertilizers = 'fertilizers', + Field = 'field', + FieldCultivationFactor = 'field__cultivationFactor', + FieldCultivationTemperature = 'field__cultivationTemperature', + FieldHarvestableIndex = 'field__harvestableIndex', + FieldHarvestablePods = 'field__harvestablePods', + FieldHarvestedPods = 'field__harvestedPods', + FieldId = 'field__id', + FieldLastDailySnapshotDay = 'field__lastDailySnapshotDay', + FieldLastHourlySnapshotSeason = 'field__lastHourlySnapshotSeason', + FieldNumberOfSowers = 'field__numberOfSowers', + FieldNumberOfSows = 'field__numberOfSows', + FieldPodIndex = 'field__podIndex', + FieldPodRate = 'field__podRate', + FieldRealRateOfReturn = 'field__realRateOfReturn', + FieldSeason = 'field__season', + FieldSoil = 'field__soil', + FieldSownBeans = 'field__sownBeans', + FieldTemperature = 'field__temperature', + FieldUnharvestablePods = 'field__unharvestablePods', + FieldUnmigratedL1Pods = 'field__unmigratedL1Pods', + Fills = 'fills', + Id = 'id', + Listings = 'listings', + Orders = 'orders', + Plots = 'plots', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Withdraws = 'withdraws' +} + +export type Fertilizer = { + __typename?: 'Fertilizer'; + /** 'beanstalk' */ + beanstalk: Scalars['String']['output']; + /** Token address for fert */ + id: Scalars['Bytes']['output']; + /** Total overall suppy of fert tokens */ + supply: Scalars['BigInt']['output']; + tokens: Array; + /** Supply from L1 which has not been minted on L2 yet */ + unmigratedL1Supply?: Maybe; +}; + + +export type FertilizerTokensArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type FertilizerBalance = { + __typename?: 'FertilizerBalance'; + /** Current balance of token */ + amount: Scalars['BigInt']['output']; + farmer: Farmer; + fertilizerToken: FertilizerToken; + /** Fertilizer Token - Farmer address */ + id: Scalars['ID']['output']; +}; + +export type FertilizerBalance_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + fertilizerToken?: InputMaybe; + fertilizerToken_?: InputMaybe; + fertilizerToken_contains?: InputMaybe; + fertilizerToken_contains_nocase?: InputMaybe; + fertilizerToken_ends_with?: InputMaybe; + fertilizerToken_ends_with_nocase?: InputMaybe; + fertilizerToken_gt?: InputMaybe; + fertilizerToken_gte?: InputMaybe; + fertilizerToken_in?: InputMaybe>; + fertilizerToken_lt?: InputMaybe; + fertilizerToken_lte?: InputMaybe; + fertilizerToken_not?: InputMaybe; + fertilizerToken_not_contains?: InputMaybe; + fertilizerToken_not_contains_nocase?: InputMaybe; + fertilizerToken_not_ends_with?: InputMaybe; + fertilizerToken_not_ends_with_nocase?: InputMaybe; + fertilizerToken_not_in?: InputMaybe>; + fertilizerToken_not_starts_with?: InputMaybe; + fertilizerToken_not_starts_with_nocase?: InputMaybe; + fertilizerToken_starts_with?: InputMaybe; + fertilizerToken_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; +}; + +export enum FertilizerBalance_OrderBy { + Amount = 'amount', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + FertilizerToken = 'fertilizerToken', + FertilizerTokenEndBpf = 'fertilizerToken__endBpf', + FertilizerTokenHumidity = 'fertilizerToken__humidity', + FertilizerTokenId = 'fertilizerToken__id', + FertilizerTokenSeason = 'fertilizerToken__season', + FertilizerTokenStartBpf = 'fertilizerToken__startBpf', + FertilizerTokenSupply = 'fertilizerToken__supply', + Id = 'id' +} + +export type FertilizerToken = { + __typename?: 'FertilizerToken'; + balances: Array; + /** Ending BPF on creation */ + endBpf: Scalars['BigInt']['output']; + fertilizer: Fertilizer; + /** Humidity paid for this ID */ + humidity: Scalars['BigDecimal']['output']; + /** Total BPF for purchase */ + id: Scalars['ID']['output']; + /** Season created */ + season: Scalars['Int']['output']; + /** Starting BPF on creation */ + startBpf: Scalars['BigInt']['output']; + /** Total supply for this Humidity */ + supply: Scalars['BigInt']['output']; +}; + + +export type FertilizerTokenBalancesArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type FertilizerToken_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + balances_?: InputMaybe; + endBpf?: InputMaybe; + endBpf_gt?: InputMaybe; + endBpf_gte?: InputMaybe; + endBpf_in?: InputMaybe>; + endBpf_lt?: InputMaybe; + endBpf_lte?: InputMaybe; + endBpf_not?: InputMaybe; + endBpf_not_in?: InputMaybe>; + fertilizer?: InputMaybe; + fertilizer_?: InputMaybe; + fertilizer_contains?: InputMaybe; + fertilizer_contains_nocase?: InputMaybe; + fertilizer_ends_with?: InputMaybe; + fertilizer_ends_with_nocase?: InputMaybe; + fertilizer_gt?: InputMaybe; + fertilizer_gte?: InputMaybe; + fertilizer_in?: InputMaybe>; + fertilizer_lt?: InputMaybe; + fertilizer_lte?: InputMaybe; + fertilizer_not?: InputMaybe; + fertilizer_not_contains?: InputMaybe; + fertilizer_not_contains_nocase?: InputMaybe; + fertilizer_not_ends_with?: InputMaybe; + fertilizer_not_ends_with_nocase?: InputMaybe; + fertilizer_not_in?: InputMaybe>; + fertilizer_not_starts_with?: InputMaybe; + fertilizer_not_starts_with_nocase?: InputMaybe; + fertilizer_starts_with?: InputMaybe; + fertilizer_starts_with_nocase?: InputMaybe; + humidity?: InputMaybe; + humidity_gt?: InputMaybe; + humidity_gte?: InputMaybe; + humidity_in?: InputMaybe>; + humidity_lt?: InputMaybe; + humidity_lte?: InputMaybe; + humidity_not?: InputMaybe; + humidity_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + startBpf?: InputMaybe; + startBpf_gt?: InputMaybe; + startBpf_gte?: InputMaybe; + startBpf_in?: InputMaybe>; + startBpf_lt?: InputMaybe; + startBpf_lte?: InputMaybe; + startBpf_not?: InputMaybe; + startBpf_not_in?: InputMaybe>; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; +}; + +export enum FertilizerToken_OrderBy { + Balances = 'balances', + EndBpf = 'endBpf', + Fertilizer = 'fertilizer', + FertilizerBeanstalk = 'fertilizer__beanstalk', + FertilizerId = 'fertilizer__id', + FertilizerSupply = 'fertilizer__supply', + FertilizerUnmigratedL1Supply = 'fertilizer__unmigratedL1Supply', + Humidity = 'humidity', + Id = 'id', + Season = 'season', + StartBpf = 'startBpf', + Supply = 'supply' +} + +export type FertilizerYield = { + __typename?: 'FertilizerYield'; + /** Current Bean EMA */ + beansPerSeasonEMA: Scalars['BigDecimal']['output']; + /** Block timestamp at creation */ + createdAt: Scalars['BigInt']['output']; + /** BPF delta */ + deltaBpf: Scalars['BigDecimal']['output']; + /** Bean EMA Window */ + emaWindow: EmaWindow; + /** Current humidity */ + humidity: Scalars['BigDecimal']['output']; + /** Season of data points */ + id: Scalars['ID']['output']; + /** Current outstanding fert */ + outstandingFert: Scalars['BigInt']['output']; + /** Current season */ + season: Scalars['Int']['output']; + /** Simplified APY for new Fert */ + simpleAPY: Scalars['BigDecimal']['output']; +}; + +export type FertilizerYield_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beansPerSeasonEMA?: InputMaybe; + beansPerSeasonEMA_gt?: InputMaybe; + beansPerSeasonEMA_gte?: InputMaybe; + beansPerSeasonEMA_in?: InputMaybe>; + beansPerSeasonEMA_lt?: InputMaybe; + beansPerSeasonEMA_lte?: InputMaybe; + beansPerSeasonEMA_not?: InputMaybe; + beansPerSeasonEMA_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaBpf?: InputMaybe; + deltaBpf_gt?: InputMaybe; + deltaBpf_gte?: InputMaybe; + deltaBpf_in?: InputMaybe>; + deltaBpf_lt?: InputMaybe; + deltaBpf_lte?: InputMaybe; + deltaBpf_not?: InputMaybe; + deltaBpf_not_in?: InputMaybe>; + emaWindow?: InputMaybe; + emaWindow_in?: InputMaybe>; + emaWindow_not?: InputMaybe; + emaWindow_not_in?: InputMaybe>; + humidity?: InputMaybe; + humidity_gt?: InputMaybe; + humidity_gte?: InputMaybe; + humidity_in?: InputMaybe>; + humidity_lt?: InputMaybe; + humidity_lte?: InputMaybe; + humidity_not?: InputMaybe; + humidity_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + outstandingFert?: InputMaybe; + outstandingFert_gt?: InputMaybe; + outstandingFert_gte?: InputMaybe; + outstandingFert_in?: InputMaybe>; + outstandingFert_lt?: InputMaybe; + outstandingFert_lte?: InputMaybe; + outstandingFert_not?: InputMaybe; + outstandingFert_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + simpleAPY?: InputMaybe; + simpleAPY_gt?: InputMaybe; + simpleAPY_gte?: InputMaybe; + simpleAPY_in?: InputMaybe>; + simpleAPY_lt?: InputMaybe; + simpleAPY_lte?: InputMaybe; + simpleAPY_not?: InputMaybe; + simpleAPY_not_in?: InputMaybe>; +}; + +export enum FertilizerYield_OrderBy { + BeansPerSeasonEma = 'beansPerSeasonEMA', + CreatedAt = 'createdAt', + DeltaBpf = 'deltaBpf', + EmaWindow = 'emaWindow', + Humidity = 'humidity', + Id = 'id', + OutstandingFert = 'outstandingFert', + Season = 'season', + SimpleApy = 'simpleAPY' +} + +export type Fertilizer_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beanstalk?: InputMaybe; + beanstalk_contains?: InputMaybe; + beanstalk_contains_nocase?: InputMaybe; + beanstalk_ends_with?: InputMaybe; + beanstalk_ends_with_nocase?: InputMaybe; + beanstalk_gt?: InputMaybe; + beanstalk_gte?: InputMaybe; + beanstalk_in?: InputMaybe>; + beanstalk_lt?: InputMaybe; + beanstalk_lte?: InputMaybe; + beanstalk_not?: InputMaybe; + beanstalk_not_contains?: InputMaybe; + beanstalk_not_contains_nocase?: InputMaybe; + beanstalk_not_ends_with?: InputMaybe; + beanstalk_not_ends_with_nocase?: InputMaybe; + beanstalk_not_in?: InputMaybe>; + beanstalk_not_starts_with?: InputMaybe; + beanstalk_not_starts_with_nocase?: InputMaybe; + beanstalk_starts_with?: InputMaybe; + beanstalk_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + tokens_?: InputMaybe; + unmigratedL1Supply?: InputMaybe; + unmigratedL1Supply_gt?: InputMaybe; + unmigratedL1Supply_gte?: InputMaybe; + unmigratedL1Supply_in?: InputMaybe>; + unmigratedL1Supply_lt?: InputMaybe; + unmigratedL1Supply_lte?: InputMaybe; + unmigratedL1Supply_not?: InputMaybe; + unmigratedL1Supply_not_in?: InputMaybe>; +}; + +export enum Fertilizer_OrderBy { + Beanstalk = 'beanstalk', + Id = 'id', + Supply = 'supply', + Tokens = 'tokens', + UnmigratedL1Supply = 'unmigratedL1Supply' +} + +export type Field = { + __typename?: 'Field'; + /** 'beanstalk' */ + beanstalk: Beanstalk; + /** PI-6 Cultivation Factor, in percent (i.e. 20.5 = 20.5% cultivation factor) */ + cultivationFactor?: Maybe; + /** PI-10 Cultivation Temperature, in percent (i.e. 50.5 = 50.5% cultivation temperature). This value is presented since protocol deployment, despite not being introduced onchain until PI-10. */ + cultivationTemperature?: Maybe; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Farmer address if applicable */ + farmer?: Maybe; + /** Current harvestable index */ + harvestableIndex: Scalars['BigInt']['output']; + /** Current harvestable pods */ + harvestablePods: Scalars['BigInt']['output']; + /** Cumulative harvested pods */ + harvestedPods: Scalars['BigInt']['output']; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Contract address for this field or farmer */ + id: Scalars['Bytes']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Cumulative number of unique sowers */ + numberOfSowers: Scalars['Int']['output']; + /** Cumulative number of sows */ + numberOfSows: Scalars['Int']['output']; + /** Array of current non-harvestable plots */ + plotIndexes: Array; + /** Current pod index */ + podIndex: Scalars['BigInt']['output']; + /** Current pod rate: Total unharvestable pods / bean supply */ + podRate: Scalars['BigDecimal']['output']; + /** Rate of return: Temperature / Bean Price */ + realRateOfReturn: Scalars['BigDecimal']['output']; + /** Current season number */ + season: Scalars['Int']['output']; + /** Current amount of soil available */ + soil: Scalars['BigInt']['output']; + /** Cumulative total of sown beans */ + sownBeans: Scalars['BigInt']['output']; + /** Current temperature, in percent (i.e. 50.5 = 50.5% temperature) */ + temperature: Scalars['BigDecimal']['output']; + /** Current outstanding non-harvestable pods */ + unharvestablePods: Scalars['BigInt']['output']; + /** Pods from L1 which has not been minted on L2 yet */ + unmigratedL1Pods?: Maybe; +}; + + +export type FieldDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type FieldHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type FieldDailySnapshot = { + __typename?: 'FieldDailySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** Point in time PI-6 Cultivation Factor */ + cultivationFactor?: Maybe; + /** Point in time PI-10 Cultivation Temperature */ + cultivationTemperature?: Maybe; + deltaCultivationFactor?: Maybe; + deltaCultivationTemperature?: Maybe; + deltaHarvestableIndex: Scalars['BigInt']['output']; + deltaHarvestablePods: Scalars['BigInt']['output']; + deltaHarvestedPods: Scalars['BigInt']['output']; + deltaIssuedSoil: Scalars['BigInt']['output']; + deltaNumberOfSowers: Scalars['Int']['output']; + deltaNumberOfSows: Scalars['Int']['output']; + deltaPodIndex: Scalars['BigInt']['output']; + deltaPodRate: Scalars['BigDecimal']['output']; + deltaRealRateOfReturn: Scalars['BigDecimal']['output']; + deltaSoil: Scalars['BigInt']['output']; + deltaSownBeans: Scalars['BigInt']['output']; + deltaTemperature: Scalars['BigDecimal']['output']; + deltaUnharvestablePods: Scalars['BigInt']['output']; + /** Field associated with this snapshot */ + field: Field; + /** Point in time harvestable index */ + harvestableIndex: Scalars['BigInt']['output']; + /** Point in time harvestable pods */ + harvestablePods: Scalars['BigInt']['output']; + /** Point in time delta harvested pods */ + harvestedPods: Scalars['BigInt']['output']; + /** Field ID - Day */ + id: Scalars['ID']['output']; + /** Point in time amount of soil issued */ + issuedSoil: Scalars['BigInt']['output']; + /** Point in time cumulative number of unique sowers */ + numberOfSowers: Scalars['Int']['output']; + /** Point in time cumulative number of sows */ + numberOfSows: Scalars['Int']['output']; + /** Point in time pod index */ + podIndex: Scalars['BigInt']['output']; + /** Point in time pod rate: Total unharvestable pods / bean supply */ + podRate: Scalars['BigDecimal']['output']; + /** Point in time rate of return: Temperature / Bean Price */ + realRateOfReturn: Scalars['BigDecimal']['output']; + /** Last season in the snapshot */ + season: Scalars['Int']['output']; + /** Point in time amount of soil remaining */ + soil: Scalars['BigInt']['output']; + /** Point in time cumulative total of sown beans */ + sownBeans: Scalars['BigInt']['output']; + /** Point in time temperature */ + temperature: Scalars['BigDecimal']['output']; + /** Point in time outstanding non-harvestable pods */ + unharvestablePods: Scalars['BigInt']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type FieldDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + cultivationFactor?: InputMaybe; + cultivationFactor_gt?: InputMaybe; + cultivationFactor_gte?: InputMaybe; + cultivationFactor_in?: InputMaybe>; + cultivationFactor_lt?: InputMaybe; + cultivationFactor_lte?: InputMaybe; + cultivationFactor_not?: InputMaybe; + cultivationFactor_not_in?: InputMaybe>; + cultivationTemperature?: InputMaybe; + cultivationTemperature_gt?: InputMaybe; + cultivationTemperature_gte?: InputMaybe; + cultivationTemperature_in?: InputMaybe>; + cultivationTemperature_lt?: InputMaybe; + cultivationTemperature_lte?: InputMaybe; + cultivationTemperature_not?: InputMaybe; + cultivationTemperature_not_in?: InputMaybe>; + deltaCultivationFactor?: InputMaybe; + deltaCultivationFactor_gt?: InputMaybe; + deltaCultivationFactor_gte?: InputMaybe; + deltaCultivationFactor_in?: InputMaybe>; + deltaCultivationFactor_lt?: InputMaybe; + deltaCultivationFactor_lte?: InputMaybe; + deltaCultivationFactor_not?: InputMaybe; + deltaCultivationFactor_not_in?: InputMaybe>; + deltaCultivationTemperature?: InputMaybe; + deltaCultivationTemperature_gt?: InputMaybe; + deltaCultivationTemperature_gte?: InputMaybe; + deltaCultivationTemperature_in?: InputMaybe>; + deltaCultivationTemperature_lt?: InputMaybe; + deltaCultivationTemperature_lte?: InputMaybe; + deltaCultivationTemperature_not?: InputMaybe; + deltaCultivationTemperature_not_in?: InputMaybe>; + deltaHarvestableIndex?: InputMaybe; + deltaHarvestableIndex_gt?: InputMaybe; + deltaHarvestableIndex_gte?: InputMaybe; + deltaHarvestableIndex_in?: InputMaybe>; + deltaHarvestableIndex_lt?: InputMaybe; + deltaHarvestableIndex_lte?: InputMaybe; + deltaHarvestableIndex_not?: InputMaybe; + deltaHarvestableIndex_not_in?: InputMaybe>; + deltaHarvestablePods?: InputMaybe; + deltaHarvestablePods_gt?: InputMaybe; + deltaHarvestablePods_gte?: InputMaybe; + deltaHarvestablePods_in?: InputMaybe>; + deltaHarvestablePods_lt?: InputMaybe; + deltaHarvestablePods_lte?: InputMaybe; + deltaHarvestablePods_not?: InputMaybe; + deltaHarvestablePods_not_in?: InputMaybe>; + deltaHarvestedPods?: InputMaybe; + deltaHarvestedPods_gt?: InputMaybe; + deltaHarvestedPods_gte?: InputMaybe; + deltaHarvestedPods_in?: InputMaybe>; + deltaHarvestedPods_lt?: InputMaybe; + deltaHarvestedPods_lte?: InputMaybe; + deltaHarvestedPods_not?: InputMaybe; + deltaHarvestedPods_not_in?: InputMaybe>; + deltaIssuedSoil?: InputMaybe; + deltaIssuedSoil_gt?: InputMaybe; + deltaIssuedSoil_gte?: InputMaybe; + deltaIssuedSoil_in?: InputMaybe>; + deltaIssuedSoil_lt?: InputMaybe; + deltaIssuedSoil_lte?: InputMaybe; + deltaIssuedSoil_not?: InputMaybe; + deltaIssuedSoil_not_in?: InputMaybe>; + deltaNumberOfSowers?: InputMaybe; + deltaNumberOfSowers_gt?: InputMaybe; + deltaNumberOfSowers_gte?: InputMaybe; + deltaNumberOfSowers_in?: InputMaybe>; + deltaNumberOfSowers_lt?: InputMaybe; + deltaNumberOfSowers_lte?: InputMaybe; + deltaNumberOfSowers_not?: InputMaybe; + deltaNumberOfSowers_not_in?: InputMaybe>; + deltaNumberOfSows?: InputMaybe; + deltaNumberOfSows_gt?: InputMaybe; + deltaNumberOfSows_gte?: InputMaybe; + deltaNumberOfSows_in?: InputMaybe>; + deltaNumberOfSows_lt?: InputMaybe; + deltaNumberOfSows_lte?: InputMaybe; + deltaNumberOfSows_not?: InputMaybe; + deltaNumberOfSows_not_in?: InputMaybe>; + deltaPodIndex?: InputMaybe; + deltaPodIndex_gt?: InputMaybe; + deltaPodIndex_gte?: InputMaybe; + deltaPodIndex_in?: InputMaybe>; + deltaPodIndex_lt?: InputMaybe; + deltaPodIndex_lte?: InputMaybe; + deltaPodIndex_not?: InputMaybe; + deltaPodIndex_not_in?: InputMaybe>; + deltaPodRate?: InputMaybe; + deltaPodRate_gt?: InputMaybe; + deltaPodRate_gte?: InputMaybe; + deltaPodRate_in?: InputMaybe>; + deltaPodRate_lt?: InputMaybe; + deltaPodRate_lte?: InputMaybe; + deltaPodRate_not?: InputMaybe; + deltaPodRate_not_in?: InputMaybe>; + deltaRealRateOfReturn?: InputMaybe; + deltaRealRateOfReturn_gt?: InputMaybe; + deltaRealRateOfReturn_gte?: InputMaybe; + deltaRealRateOfReturn_in?: InputMaybe>; + deltaRealRateOfReturn_lt?: InputMaybe; + deltaRealRateOfReturn_lte?: InputMaybe; + deltaRealRateOfReturn_not?: InputMaybe; + deltaRealRateOfReturn_not_in?: InputMaybe>; + deltaSoil?: InputMaybe; + deltaSoil_gt?: InputMaybe; + deltaSoil_gte?: InputMaybe; + deltaSoil_in?: InputMaybe>; + deltaSoil_lt?: InputMaybe; + deltaSoil_lte?: InputMaybe; + deltaSoil_not?: InputMaybe; + deltaSoil_not_in?: InputMaybe>; + deltaSownBeans?: InputMaybe; + deltaSownBeans_gt?: InputMaybe; + deltaSownBeans_gte?: InputMaybe; + deltaSownBeans_in?: InputMaybe>; + deltaSownBeans_lt?: InputMaybe; + deltaSownBeans_lte?: InputMaybe; + deltaSownBeans_not?: InputMaybe; + deltaSownBeans_not_in?: InputMaybe>; + deltaTemperature?: InputMaybe; + deltaTemperature_gt?: InputMaybe; + deltaTemperature_gte?: InputMaybe; + deltaTemperature_in?: InputMaybe>; + deltaTemperature_lt?: InputMaybe; + deltaTemperature_lte?: InputMaybe; + deltaTemperature_not?: InputMaybe; + deltaTemperature_not_in?: InputMaybe>; + deltaUnharvestablePods?: InputMaybe; + deltaUnharvestablePods_gt?: InputMaybe; + deltaUnharvestablePods_gte?: InputMaybe; + deltaUnharvestablePods_in?: InputMaybe>; + deltaUnharvestablePods_lt?: InputMaybe; + deltaUnharvestablePods_lte?: InputMaybe; + deltaUnharvestablePods_not?: InputMaybe; + deltaUnharvestablePods_not_in?: InputMaybe>; + field?: InputMaybe; + field_?: InputMaybe; + field_contains?: InputMaybe; + field_contains_nocase?: InputMaybe; + field_ends_with?: InputMaybe; + field_ends_with_nocase?: InputMaybe; + field_gt?: InputMaybe; + field_gte?: InputMaybe; + field_in?: InputMaybe>; + field_lt?: InputMaybe; + field_lte?: InputMaybe; + field_not?: InputMaybe; + field_not_contains?: InputMaybe; + field_not_contains_nocase?: InputMaybe; + field_not_ends_with?: InputMaybe; + field_not_ends_with_nocase?: InputMaybe; + field_not_in?: InputMaybe>; + field_not_starts_with?: InputMaybe; + field_not_starts_with_nocase?: InputMaybe; + field_starts_with?: InputMaybe; + field_starts_with_nocase?: InputMaybe; + harvestableIndex?: InputMaybe; + harvestableIndex_gt?: InputMaybe; + harvestableIndex_gte?: InputMaybe; + harvestableIndex_in?: InputMaybe>; + harvestableIndex_lt?: InputMaybe; + harvestableIndex_lte?: InputMaybe; + harvestableIndex_not?: InputMaybe; + harvestableIndex_not_in?: InputMaybe>; + harvestablePods?: InputMaybe; + harvestablePods_gt?: InputMaybe; + harvestablePods_gte?: InputMaybe; + harvestablePods_in?: InputMaybe>; + harvestablePods_lt?: InputMaybe; + harvestablePods_lte?: InputMaybe; + harvestablePods_not?: InputMaybe; + harvestablePods_not_in?: InputMaybe>; + harvestedPods?: InputMaybe; + harvestedPods_gt?: InputMaybe; + harvestedPods_gte?: InputMaybe; + harvestedPods_in?: InputMaybe>; + harvestedPods_lt?: InputMaybe; + harvestedPods_lte?: InputMaybe; + harvestedPods_not?: InputMaybe; + harvestedPods_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + issuedSoil?: InputMaybe; + issuedSoil_gt?: InputMaybe; + issuedSoil_gte?: InputMaybe; + issuedSoil_in?: InputMaybe>; + issuedSoil_lt?: InputMaybe; + issuedSoil_lte?: InputMaybe; + issuedSoil_not?: InputMaybe; + issuedSoil_not_in?: InputMaybe>; + numberOfSowers?: InputMaybe; + numberOfSowers_gt?: InputMaybe; + numberOfSowers_gte?: InputMaybe; + numberOfSowers_in?: InputMaybe>; + numberOfSowers_lt?: InputMaybe; + numberOfSowers_lte?: InputMaybe; + numberOfSowers_not?: InputMaybe; + numberOfSowers_not_in?: InputMaybe>; + numberOfSows?: InputMaybe; + numberOfSows_gt?: InputMaybe; + numberOfSows_gte?: InputMaybe; + numberOfSows_in?: InputMaybe>; + numberOfSows_lt?: InputMaybe; + numberOfSows_lte?: InputMaybe; + numberOfSows_not?: InputMaybe; + numberOfSows_not_in?: InputMaybe>; + or?: InputMaybe>>; + podIndex?: InputMaybe; + podIndex_gt?: InputMaybe; + podIndex_gte?: InputMaybe; + podIndex_in?: InputMaybe>; + podIndex_lt?: InputMaybe; + podIndex_lte?: InputMaybe; + podIndex_not?: InputMaybe; + podIndex_not_in?: InputMaybe>; + podRate?: InputMaybe; + podRate_gt?: InputMaybe; + podRate_gte?: InputMaybe; + podRate_in?: InputMaybe>; + podRate_lt?: InputMaybe; + podRate_lte?: InputMaybe; + podRate_not?: InputMaybe; + podRate_not_in?: InputMaybe>; + realRateOfReturn?: InputMaybe; + realRateOfReturn_gt?: InputMaybe; + realRateOfReturn_gte?: InputMaybe; + realRateOfReturn_in?: InputMaybe>; + realRateOfReturn_lt?: InputMaybe; + realRateOfReturn_lte?: InputMaybe; + realRateOfReturn_not?: InputMaybe; + realRateOfReturn_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + soil?: InputMaybe; + soil_gt?: InputMaybe; + soil_gte?: InputMaybe; + soil_in?: InputMaybe>; + soil_lt?: InputMaybe; + soil_lte?: InputMaybe; + soil_not?: InputMaybe; + soil_not_in?: InputMaybe>; + sownBeans?: InputMaybe; + sownBeans_gt?: InputMaybe; + sownBeans_gte?: InputMaybe; + sownBeans_in?: InputMaybe>; + sownBeans_lt?: InputMaybe; + sownBeans_lte?: InputMaybe; + sownBeans_not?: InputMaybe; + sownBeans_not_in?: InputMaybe>; + temperature?: InputMaybe; + temperature_gt?: InputMaybe; + temperature_gte?: InputMaybe; + temperature_in?: InputMaybe>; + temperature_lt?: InputMaybe; + temperature_lte?: InputMaybe; + temperature_not?: InputMaybe; + temperature_not_in?: InputMaybe>; + unharvestablePods?: InputMaybe; + unharvestablePods_gt?: InputMaybe; + unharvestablePods_gte?: InputMaybe; + unharvestablePods_in?: InputMaybe>; + unharvestablePods_lt?: InputMaybe; + unharvestablePods_lte?: InputMaybe; + unharvestablePods_not?: InputMaybe; + unharvestablePods_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum FieldDailySnapshot_OrderBy { + CreatedAt = 'createdAt', + CultivationFactor = 'cultivationFactor', + CultivationTemperature = 'cultivationTemperature', + DeltaCultivationFactor = 'deltaCultivationFactor', + DeltaCultivationTemperature = 'deltaCultivationTemperature', + DeltaHarvestableIndex = 'deltaHarvestableIndex', + DeltaHarvestablePods = 'deltaHarvestablePods', + DeltaHarvestedPods = 'deltaHarvestedPods', + DeltaIssuedSoil = 'deltaIssuedSoil', + DeltaNumberOfSowers = 'deltaNumberOfSowers', + DeltaNumberOfSows = 'deltaNumberOfSows', + DeltaPodIndex = 'deltaPodIndex', + DeltaPodRate = 'deltaPodRate', + DeltaRealRateOfReturn = 'deltaRealRateOfReturn', + DeltaSoil = 'deltaSoil', + DeltaSownBeans = 'deltaSownBeans', + DeltaTemperature = 'deltaTemperature', + DeltaUnharvestablePods = 'deltaUnharvestablePods', + Field = 'field', + FieldCultivationFactor = 'field__cultivationFactor', + FieldCultivationTemperature = 'field__cultivationTemperature', + FieldHarvestableIndex = 'field__harvestableIndex', + FieldHarvestablePods = 'field__harvestablePods', + FieldHarvestedPods = 'field__harvestedPods', + FieldId = 'field__id', + FieldLastDailySnapshotDay = 'field__lastDailySnapshotDay', + FieldLastHourlySnapshotSeason = 'field__lastHourlySnapshotSeason', + FieldNumberOfSowers = 'field__numberOfSowers', + FieldNumberOfSows = 'field__numberOfSows', + FieldPodIndex = 'field__podIndex', + FieldPodRate = 'field__podRate', + FieldRealRateOfReturn = 'field__realRateOfReturn', + FieldSeason = 'field__season', + FieldSoil = 'field__soil', + FieldSownBeans = 'field__sownBeans', + FieldTemperature = 'field__temperature', + FieldUnharvestablePods = 'field__unharvestablePods', + FieldUnmigratedL1Pods = 'field__unmigratedL1Pods', + HarvestableIndex = 'harvestableIndex', + HarvestablePods = 'harvestablePods', + HarvestedPods = 'harvestedPods', + Id = 'id', + IssuedSoil = 'issuedSoil', + NumberOfSowers = 'numberOfSowers', + NumberOfSows = 'numberOfSows', + PodIndex = 'podIndex', + PodRate = 'podRate', + RealRateOfReturn = 'realRateOfReturn', + Season = 'season', + Soil = 'soil', + SownBeans = 'sownBeans', + Temperature = 'temperature', + UnharvestablePods = 'unharvestablePods', + UpdatedAt = 'updatedAt' +} + +export type FieldHourlySnapshot = { + __typename?: 'FieldHourlySnapshot'; + /** Number of blocks between sunrise and soil being sold out */ + blocksToSoldOutSoil?: Maybe; + /** The caseId used in the seasonal adjustment of temperature */ + caseId?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** Point in time PI-6 Cultivation Factor */ + cultivationFactor?: Maybe; + /** Point in time PI-10 Cultivation Temperature */ + cultivationTemperature?: Maybe; + deltaCultivationFactor?: Maybe; + deltaCultivationTemperature?: Maybe; + deltaHarvestableIndex: Scalars['BigInt']['output']; + deltaHarvestablePods: Scalars['BigInt']['output']; + deltaHarvestedPods: Scalars['BigInt']['output']; + deltaIssuedSoil: Scalars['BigInt']['output']; + deltaNumberOfSowers: Scalars['Int']['output']; + deltaNumberOfSows: Scalars['Int']['output']; + /** Result of getDeltaPodDemand for this season. Refer to protocol codebase to understand how to interpret this value */ + deltaPodDemand: Scalars['BigInt']['output']; + deltaPodIndex: Scalars['BigInt']['output']; + deltaPodRate: Scalars['BigDecimal']['output']; + deltaRealRateOfReturn: Scalars['BigDecimal']['output']; + deltaSoil: Scalars['BigInt']['output']; + deltaSownBeans: Scalars['BigInt']['output']; + deltaTemperature: Scalars['BigDecimal']['output']; + deltaUnharvestablePods: Scalars['BigInt']['output']; + /** Field associated with this snapshot */ + field: Field; + /** Point in time harvestable index */ + harvestableIndex: Scalars['BigInt']['output']; + /** Point in time harvestable pods */ + harvestablePods: Scalars['BigInt']['output']; + /** Point in time cumulative harvested pods */ + harvestedPods: Scalars['BigInt']['output']; + /** Field ID - Season */ + id: Scalars['ID']['output']; + /** Point in time amount of soil issued */ + issuedSoil: Scalars['BigInt']['output']; + /** Point in time cumulative number of unique sowers */ + numberOfSowers: Scalars['Int']['output']; + /** Point in time cumulative number of sows */ + numberOfSows: Scalars['Int']['output']; + /** Point in time pod index */ + podIndex: Scalars['BigInt']['output']; + /** Point in time pod rate: Total unharvestable pods / bean supply */ + podRate: Scalars['BigDecimal']['output']; + /** Point in time rate of return: Temperature / Bean Price */ + realRateOfReturn: Scalars['BigDecimal']['output']; + /** Season */ + season: Scalars['Int']['output']; + /** Block that started this season/at time of snapshot creation */ + seasonBlock: Scalars['BigInt']['output']; + /** Point in time amount of soil remaining */ + soil: Scalars['BigInt']['output']; + /** Bool flag if soil sold out for the season */ + soilSoldOut: Scalars['Boolean']['output']; + /** Point in time cumulative total of sown beans */ + sownBeans: Scalars['BigInt']['output']; + /** Point in time temperature */ + temperature: Scalars['BigDecimal']['output']; + /** Point in time outstanding non-harvestable pods */ + unharvestablePods: Scalars['BigInt']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type FieldHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + blocksToSoldOutSoil?: InputMaybe; + blocksToSoldOutSoil_gt?: InputMaybe; + blocksToSoldOutSoil_gte?: InputMaybe; + blocksToSoldOutSoil_in?: InputMaybe>; + blocksToSoldOutSoil_lt?: InputMaybe; + blocksToSoldOutSoil_lte?: InputMaybe; + blocksToSoldOutSoil_not?: InputMaybe; + blocksToSoldOutSoil_not_in?: InputMaybe>; + caseId?: InputMaybe; + caseId_gt?: InputMaybe; + caseId_gte?: InputMaybe; + caseId_in?: InputMaybe>; + caseId_lt?: InputMaybe; + caseId_lte?: InputMaybe; + caseId_not?: InputMaybe; + caseId_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + cultivationFactor?: InputMaybe; + cultivationFactor_gt?: InputMaybe; + cultivationFactor_gte?: InputMaybe; + cultivationFactor_in?: InputMaybe>; + cultivationFactor_lt?: InputMaybe; + cultivationFactor_lte?: InputMaybe; + cultivationFactor_not?: InputMaybe; + cultivationFactor_not_in?: InputMaybe>; + cultivationTemperature?: InputMaybe; + cultivationTemperature_gt?: InputMaybe; + cultivationTemperature_gte?: InputMaybe; + cultivationTemperature_in?: InputMaybe>; + cultivationTemperature_lt?: InputMaybe; + cultivationTemperature_lte?: InputMaybe; + cultivationTemperature_not?: InputMaybe; + cultivationTemperature_not_in?: InputMaybe>; + deltaCultivationFactor?: InputMaybe; + deltaCultivationFactor_gt?: InputMaybe; + deltaCultivationFactor_gte?: InputMaybe; + deltaCultivationFactor_in?: InputMaybe>; + deltaCultivationFactor_lt?: InputMaybe; + deltaCultivationFactor_lte?: InputMaybe; + deltaCultivationFactor_not?: InputMaybe; + deltaCultivationFactor_not_in?: InputMaybe>; + deltaCultivationTemperature?: InputMaybe; + deltaCultivationTemperature_gt?: InputMaybe; + deltaCultivationTemperature_gte?: InputMaybe; + deltaCultivationTemperature_in?: InputMaybe>; + deltaCultivationTemperature_lt?: InputMaybe; + deltaCultivationTemperature_lte?: InputMaybe; + deltaCultivationTemperature_not?: InputMaybe; + deltaCultivationTemperature_not_in?: InputMaybe>; + deltaHarvestableIndex?: InputMaybe; + deltaHarvestableIndex_gt?: InputMaybe; + deltaHarvestableIndex_gte?: InputMaybe; + deltaHarvestableIndex_in?: InputMaybe>; + deltaHarvestableIndex_lt?: InputMaybe; + deltaHarvestableIndex_lte?: InputMaybe; + deltaHarvestableIndex_not?: InputMaybe; + deltaHarvestableIndex_not_in?: InputMaybe>; + deltaHarvestablePods?: InputMaybe; + deltaHarvestablePods_gt?: InputMaybe; + deltaHarvestablePods_gte?: InputMaybe; + deltaHarvestablePods_in?: InputMaybe>; + deltaHarvestablePods_lt?: InputMaybe; + deltaHarvestablePods_lte?: InputMaybe; + deltaHarvestablePods_not?: InputMaybe; + deltaHarvestablePods_not_in?: InputMaybe>; + deltaHarvestedPods?: InputMaybe; + deltaHarvestedPods_gt?: InputMaybe; + deltaHarvestedPods_gte?: InputMaybe; + deltaHarvestedPods_in?: InputMaybe>; + deltaHarvestedPods_lt?: InputMaybe; + deltaHarvestedPods_lte?: InputMaybe; + deltaHarvestedPods_not?: InputMaybe; + deltaHarvestedPods_not_in?: InputMaybe>; + deltaIssuedSoil?: InputMaybe; + deltaIssuedSoil_gt?: InputMaybe; + deltaIssuedSoil_gte?: InputMaybe; + deltaIssuedSoil_in?: InputMaybe>; + deltaIssuedSoil_lt?: InputMaybe; + deltaIssuedSoil_lte?: InputMaybe; + deltaIssuedSoil_not?: InputMaybe; + deltaIssuedSoil_not_in?: InputMaybe>; + deltaNumberOfSowers?: InputMaybe; + deltaNumberOfSowers_gt?: InputMaybe; + deltaNumberOfSowers_gte?: InputMaybe; + deltaNumberOfSowers_in?: InputMaybe>; + deltaNumberOfSowers_lt?: InputMaybe; + deltaNumberOfSowers_lte?: InputMaybe; + deltaNumberOfSowers_not?: InputMaybe; + deltaNumberOfSowers_not_in?: InputMaybe>; + deltaNumberOfSows?: InputMaybe; + deltaNumberOfSows_gt?: InputMaybe; + deltaNumberOfSows_gte?: InputMaybe; + deltaNumberOfSows_in?: InputMaybe>; + deltaNumberOfSows_lt?: InputMaybe; + deltaNumberOfSows_lte?: InputMaybe; + deltaNumberOfSows_not?: InputMaybe; + deltaNumberOfSows_not_in?: InputMaybe>; + deltaPodDemand?: InputMaybe; + deltaPodDemand_gt?: InputMaybe; + deltaPodDemand_gte?: InputMaybe; + deltaPodDemand_in?: InputMaybe>; + deltaPodDemand_lt?: InputMaybe; + deltaPodDemand_lte?: InputMaybe; + deltaPodDemand_not?: InputMaybe; + deltaPodDemand_not_in?: InputMaybe>; + deltaPodIndex?: InputMaybe; + deltaPodIndex_gt?: InputMaybe; + deltaPodIndex_gte?: InputMaybe; + deltaPodIndex_in?: InputMaybe>; + deltaPodIndex_lt?: InputMaybe; + deltaPodIndex_lte?: InputMaybe; + deltaPodIndex_not?: InputMaybe; + deltaPodIndex_not_in?: InputMaybe>; + deltaPodRate?: InputMaybe; + deltaPodRate_gt?: InputMaybe; + deltaPodRate_gte?: InputMaybe; + deltaPodRate_in?: InputMaybe>; + deltaPodRate_lt?: InputMaybe; + deltaPodRate_lte?: InputMaybe; + deltaPodRate_not?: InputMaybe; + deltaPodRate_not_in?: InputMaybe>; + deltaRealRateOfReturn?: InputMaybe; + deltaRealRateOfReturn_gt?: InputMaybe; + deltaRealRateOfReturn_gte?: InputMaybe; + deltaRealRateOfReturn_in?: InputMaybe>; + deltaRealRateOfReturn_lt?: InputMaybe; + deltaRealRateOfReturn_lte?: InputMaybe; + deltaRealRateOfReturn_not?: InputMaybe; + deltaRealRateOfReturn_not_in?: InputMaybe>; + deltaSoil?: InputMaybe; + deltaSoil_gt?: InputMaybe; + deltaSoil_gte?: InputMaybe; + deltaSoil_in?: InputMaybe>; + deltaSoil_lt?: InputMaybe; + deltaSoil_lte?: InputMaybe; + deltaSoil_not?: InputMaybe; + deltaSoil_not_in?: InputMaybe>; + deltaSownBeans?: InputMaybe; + deltaSownBeans_gt?: InputMaybe; + deltaSownBeans_gte?: InputMaybe; + deltaSownBeans_in?: InputMaybe>; + deltaSownBeans_lt?: InputMaybe; + deltaSownBeans_lte?: InputMaybe; + deltaSownBeans_not?: InputMaybe; + deltaSownBeans_not_in?: InputMaybe>; + deltaTemperature?: InputMaybe; + deltaTemperature_gt?: InputMaybe; + deltaTemperature_gte?: InputMaybe; + deltaTemperature_in?: InputMaybe>; + deltaTemperature_lt?: InputMaybe; + deltaTemperature_lte?: InputMaybe; + deltaTemperature_not?: InputMaybe; + deltaTemperature_not_in?: InputMaybe>; + deltaUnharvestablePods?: InputMaybe; + deltaUnharvestablePods_gt?: InputMaybe; + deltaUnharvestablePods_gte?: InputMaybe; + deltaUnharvestablePods_in?: InputMaybe>; + deltaUnharvestablePods_lt?: InputMaybe; + deltaUnharvestablePods_lte?: InputMaybe; + deltaUnharvestablePods_not?: InputMaybe; + deltaUnharvestablePods_not_in?: InputMaybe>; + field?: InputMaybe; + field_?: InputMaybe; + field_contains?: InputMaybe; + field_contains_nocase?: InputMaybe; + field_ends_with?: InputMaybe; + field_ends_with_nocase?: InputMaybe; + field_gt?: InputMaybe; + field_gte?: InputMaybe; + field_in?: InputMaybe>; + field_lt?: InputMaybe; + field_lte?: InputMaybe; + field_not?: InputMaybe; + field_not_contains?: InputMaybe; + field_not_contains_nocase?: InputMaybe; + field_not_ends_with?: InputMaybe; + field_not_ends_with_nocase?: InputMaybe; + field_not_in?: InputMaybe>; + field_not_starts_with?: InputMaybe; + field_not_starts_with_nocase?: InputMaybe; + field_starts_with?: InputMaybe; + field_starts_with_nocase?: InputMaybe; + harvestableIndex?: InputMaybe; + harvestableIndex_gt?: InputMaybe; + harvestableIndex_gte?: InputMaybe; + harvestableIndex_in?: InputMaybe>; + harvestableIndex_lt?: InputMaybe; + harvestableIndex_lte?: InputMaybe; + harvestableIndex_not?: InputMaybe; + harvestableIndex_not_in?: InputMaybe>; + harvestablePods?: InputMaybe; + harvestablePods_gt?: InputMaybe; + harvestablePods_gte?: InputMaybe; + harvestablePods_in?: InputMaybe>; + harvestablePods_lt?: InputMaybe; + harvestablePods_lte?: InputMaybe; + harvestablePods_not?: InputMaybe; + harvestablePods_not_in?: InputMaybe>; + harvestedPods?: InputMaybe; + harvestedPods_gt?: InputMaybe; + harvestedPods_gte?: InputMaybe; + harvestedPods_in?: InputMaybe>; + harvestedPods_lt?: InputMaybe; + harvestedPods_lte?: InputMaybe; + harvestedPods_not?: InputMaybe; + harvestedPods_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + issuedSoil?: InputMaybe; + issuedSoil_gt?: InputMaybe; + issuedSoil_gte?: InputMaybe; + issuedSoil_in?: InputMaybe>; + issuedSoil_lt?: InputMaybe; + issuedSoil_lte?: InputMaybe; + issuedSoil_not?: InputMaybe; + issuedSoil_not_in?: InputMaybe>; + numberOfSowers?: InputMaybe; + numberOfSowers_gt?: InputMaybe; + numberOfSowers_gte?: InputMaybe; + numberOfSowers_in?: InputMaybe>; + numberOfSowers_lt?: InputMaybe; + numberOfSowers_lte?: InputMaybe; + numberOfSowers_not?: InputMaybe; + numberOfSowers_not_in?: InputMaybe>; + numberOfSows?: InputMaybe; + numberOfSows_gt?: InputMaybe; + numberOfSows_gte?: InputMaybe; + numberOfSows_in?: InputMaybe>; + numberOfSows_lt?: InputMaybe; + numberOfSows_lte?: InputMaybe; + numberOfSows_not?: InputMaybe; + numberOfSows_not_in?: InputMaybe>; + or?: InputMaybe>>; + podIndex?: InputMaybe; + podIndex_gt?: InputMaybe; + podIndex_gte?: InputMaybe; + podIndex_in?: InputMaybe>; + podIndex_lt?: InputMaybe; + podIndex_lte?: InputMaybe; + podIndex_not?: InputMaybe; + podIndex_not_in?: InputMaybe>; + podRate?: InputMaybe; + podRate_gt?: InputMaybe; + podRate_gte?: InputMaybe; + podRate_in?: InputMaybe>; + podRate_lt?: InputMaybe; + podRate_lte?: InputMaybe; + podRate_not?: InputMaybe; + podRate_not_in?: InputMaybe>; + realRateOfReturn?: InputMaybe; + realRateOfReturn_gt?: InputMaybe; + realRateOfReturn_gte?: InputMaybe; + realRateOfReturn_in?: InputMaybe>; + realRateOfReturn_lt?: InputMaybe; + realRateOfReturn_lte?: InputMaybe; + realRateOfReturn_not?: InputMaybe; + realRateOfReturn_not_in?: InputMaybe>; + season?: InputMaybe; + seasonBlock?: InputMaybe; + seasonBlock_gt?: InputMaybe; + seasonBlock_gte?: InputMaybe; + seasonBlock_in?: InputMaybe>; + seasonBlock_lt?: InputMaybe; + seasonBlock_lte?: InputMaybe; + seasonBlock_not?: InputMaybe; + seasonBlock_not_in?: InputMaybe>; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + soil?: InputMaybe; + soilSoldOut?: InputMaybe; + soilSoldOut_in?: InputMaybe>; + soilSoldOut_not?: InputMaybe; + soilSoldOut_not_in?: InputMaybe>; + soil_gt?: InputMaybe; + soil_gte?: InputMaybe; + soil_in?: InputMaybe>; + soil_lt?: InputMaybe; + soil_lte?: InputMaybe; + soil_not?: InputMaybe; + soil_not_in?: InputMaybe>; + sownBeans?: InputMaybe; + sownBeans_gt?: InputMaybe; + sownBeans_gte?: InputMaybe; + sownBeans_in?: InputMaybe>; + sownBeans_lt?: InputMaybe; + sownBeans_lte?: InputMaybe; + sownBeans_not?: InputMaybe; + sownBeans_not_in?: InputMaybe>; + temperature?: InputMaybe; + temperature_gt?: InputMaybe; + temperature_gte?: InputMaybe; + temperature_in?: InputMaybe>; + temperature_lt?: InputMaybe; + temperature_lte?: InputMaybe; + temperature_not?: InputMaybe; + temperature_not_in?: InputMaybe>; + unharvestablePods?: InputMaybe; + unharvestablePods_gt?: InputMaybe; + unharvestablePods_gte?: InputMaybe; + unharvestablePods_in?: InputMaybe>; + unharvestablePods_lt?: InputMaybe; + unharvestablePods_lte?: InputMaybe; + unharvestablePods_not?: InputMaybe; + unharvestablePods_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum FieldHourlySnapshot_OrderBy { + BlocksToSoldOutSoil = 'blocksToSoldOutSoil', + CaseId = 'caseId', + CreatedAt = 'createdAt', + CultivationFactor = 'cultivationFactor', + CultivationTemperature = 'cultivationTemperature', + DeltaCultivationFactor = 'deltaCultivationFactor', + DeltaCultivationTemperature = 'deltaCultivationTemperature', + DeltaHarvestableIndex = 'deltaHarvestableIndex', + DeltaHarvestablePods = 'deltaHarvestablePods', + DeltaHarvestedPods = 'deltaHarvestedPods', + DeltaIssuedSoil = 'deltaIssuedSoil', + DeltaNumberOfSowers = 'deltaNumberOfSowers', + DeltaNumberOfSows = 'deltaNumberOfSows', + DeltaPodDemand = 'deltaPodDemand', + DeltaPodIndex = 'deltaPodIndex', + DeltaPodRate = 'deltaPodRate', + DeltaRealRateOfReturn = 'deltaRealRateOfReturn', + DeltaSoil = 'deltaSoil', + DeltaSownBeans = 'deltaSownBeans', + DeltaTemperature = 'deltaTemperature', + DeltaUnharvestablePods = 'deltaUnharvestablePods', + Field = 'field', + FieldCultivationFactor = 'field__cultivationFactor', + FieldCultivationTemperature = 'field__cultivationTemperature', + FieldHarvestableIndex = 'field__harvestableIndex', + FieldHarvestablePods = 'field__harvestablePods', + FieldHarvestedPods = 'field__harvestedPods', + FieldId = 'field__id', + FieldLastDailySnapshotDay = 'field__lastDailySnapshotDay', + FieldLastHourlySnapshotSeason = 'field__lastHourlySnapshotSeason', + FieldNumberOfSowers = 'field__numberOfSowers', + FieldNumberOfSows = 'field__numberOfSows', + FieldPodIndex = 'field__podIndex', + FieldPodRate = 'field__podRate', + FieldRealRateOfReturn = 'field__realRateOfReturn', + FieldSeason = 'field__season', + FieldSoil = 'field__soil', + FieldSownBeans = 'field__sownBeans', + FieldTemperature = 'field__temperature', + FieldUnharvestablePods = 'field__unharvestablePods', + FieldUnmigratedL1Pods = 'field__unmigratedL1Pods', + HarvestableIndex = 'harvestableIndex', + HarvestablePods = 'harvestablePods', + HarvestedPods = 'harvestedPods', + Id = 'id', + IssuedSoil = 'issuedSoil', + NumberOfSowers = 'numberOfSowers', + NumberOfSows = 'numberOfSows', + PodIndex = 'podIndex', + PodRate = 'podRate', + RealRateOfReturn = 'realRateOfReturn', + Season = 'season', + SeasonBlock = 'seasonBlock', + Soil = 'soil', + SoilSoldOut = 'soilSoldOut', + SownBeans = 'sownBeans', + Temperature = 'temperature', + UnharvestablePods = 'unharvestablePods', + UpdatedAt = 'updatedAt' +} + +export type Field_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beanstalk?: InputMaybe; + beanstalk_?: InputMaybe; + beanstalk_contains?: InputMaybe; + beanstalk_contains_nocase?: InputMaybe; + beanstalk_ends_with?: InputMaybe; + beanstalk_ends_with_nocase?: InputMaybe; + beanstalk_gt?: InputMaybe; + beanstalk_gte?: InputMaybe; + beanstalk_in?: InputMaybe>; + beanstalk_lt?: InputMaybe; + beanstalk_lte?: InputMaybe; + beanstalk_not?: InputMaybe; + beanstalk_not_contains?: InputMaybe; + beanstalk_not_contains_nocase?: InputMaybe; + beanstalk_not_ends_with?: InputMaybe; + beanstalk_not_ends_with_nocase?: InputMaybe; + beanstalk_not_in?: InputMaybe>; + beanstalk_not_starts_with?: InputMaybe; + beanstalk_not_starts_with_nocase?: InputMaybe; + beanstalk_starts_with?: InputMaybe; + beanstalk_starts_with_nocase?: InputMaybe; + cultivationFactor?: InputMaybe; + cultivationFactor_gt?: InputMaybe; + cultivationFactor_gte?: InputMaybe; + cultivationFactor_in?: InputMaybe>; + cultivationFactor_lt?: InputMaybe; + cultivationFactor_lte?: InputMaybe; + cultivationFactor_not?: InputMaybe; + cultivationFactor_not_in?: InputMaybe>; + cultivationTemperature?: InputMaybe; + cultivationTemperature_gt?: InputMaybe; + cultivationTemperature_gte?: InputMaybe; + cultivationTemperature_in?: InputMaybe>; + cultivationTemperature_lt?: InputMaybe; + cultivationTemperature_lte?: InputMaybe; + cultivationTemperature_not?: InputMaybe; + cultivationTemperature_not_in?: InputMaybe>; + dailySnapshots_?: InputMaybe; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + harvestableIndex?: InputMaybe; + harvestableIndex_gt?: InputMaybe; + harvestableIndex_gte?: InputMaybe; + harvestableIndex_in?: InputMaybe>; + harvestableIndex_lt?: InputMaybe; + harvestableIndex_lte?: InputMaybe; + harvestableIndex_not?: InputMaybe; + harvestableIndex_not_in?: InputMaybe>; + harvestablePods?: InputMaybe; + harvestablePods_gt?: InputMaybe; + harvestablePods_gte?: InputMaybe; + harvestablePods_in?: InputMaybe>; + harvestablePods_lt?: InputMaybe; + harvestablePods_lte?: InputMaybe; + harvestablePods_not?: InputMaybe; + harvestablePods_not_in?: InputMaybe>; + harvestedPods?: InputMaybe; + harvestedPods_gt?: InputMaybe; + harvestedPods_gte?: InputMaybe; + harvestedPods_in?: InputMaybe>; + harvestedPods_lt?: InputMaybe; + harvestedPods_lte?: InputMaybe; + harvestedPods_not?: InputMaybe; + harvestedPods_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + numberOfSowers?: InputMaybe; + numberOfSowers_gt?: InputMaybe; + numberOfSowers_gte?: InputMaybe; + numberOfSowers_in?: InputMaybe>; + numberOfSowers_lt?: InputMaybe; + numberOfSowers_lte?: InputMaybe; + numberOfSowers_not?: InputMaybe; + numberOfSowers_not_in?: InputMaybe>; + numberOfSows?: InputMaybe; + numberOfSows_gt?: InputMaybe; + numberOfSows_gte?: InputMaybe; + numberOfSows_in?: InputMaybe>; + numberOfSows_lt?: InputMaybe; + numberOfSows_lte?: InputMaybe; + numberOfSows_not?: InputMaybe; + numberOfSows_not_in?: InputMaybe>; + or?: InputMaybe>>; + plotIndexes?: InputMaybe>; + plotIndexes_contains?: InputMaybe>; + plotIndexes_contains_nocase?: InputMaybe>; + plotIndexes_not?: InputMaybe>; + plotIndexes_not_contains?: InputMaybe>; + plotIndexes_not_contains_nocase?: InputMaybe>; + podIndex?: InputMaybe; + podIndex_gt?: InputMaybe; + podIndex_gte?: InputMaybe; + podIndex_in?: InputMaybe>; + podIndex_lt?: InputMaybe; + podIndex_lte?: InputMaybe; + podIndex_not?: InputMaybe; + podIndex_not_in?: InputMaybe>; + podRate?: InputMaybe; + podRate_gt?: InputMaybe; + podRate_gte?: InputMaybe; + podRate_in?: InputMaybe>; + podRate_lt?: InputMaybe; + podRate_lte?: InputMaybe; + podRate_not?: InputMaybe; + podRate_not_in?: InputMaybe>; + realRateOfReturn?: InputMaybe; + realRateOfReturn_gt?: InputMaybe; + realRateOfReturn_gte?: InputMaybe; + realRateOfReturn_in?: InputMaybe>; + realRateOfReturn_lt?: InputMaybe; + realRateOfReturn_lte?: InputMaybe; + realRateOfReturn_not?: InputMaybe; + realRateOfReturn_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + soil?: InputMaybe; + soil_gt?: InputMaybe; + soil_gte?: InputMaybe; + soil_in?: InputMaybe>; + soil_lt?: InputMaybe; + soil_lte?: InputMaybe; + soil_not?: InputMaybe; + soil_not_in?: InputMaybe>; + sownBeans?: InputMaybe; + sownBeans_gt?: InputMaybe; + sownBeans_gte?: InputMaybe; + sownBeans_in?: InputMaybe>; + sownBeans_lt?: InputMaybe; + sownBeans_lte?: InputMaybe; + sownBeans_not?: InputMaybe; + sownBeans_not_in?: InputMaybe>; + temperature?: InputMaybe; + temperature_gt?: InputMaybe; + temperature_gte?: InputMaybe; + temperature_in?: InputMaybe>; + temperature_lt?: InputMaybe; + temperature_lte?: InputMaybe; + temperature_not?: InputMaybe; + temperature_not_in?: InputMaybe>; + unharvestablePods?: InputMaybe; + unharvestablePods_gt?: InputMaybe; + unharvestablePods_gte?: InputMaybe; + unharvestablePods_in?: InputMaybe>; + unharvestablePods_lt?: InputMaybe; + unharvestablePods_lte?: InputMaybe; + unharvestablePods_not?: InputMaybe; + unharvestablePods_not_in?: InputMaybe>; + unmigratedL1Pods?: InputMaybe; + unmigratedL1Pods_gt?: InputMaybe; + unmigratedL1Pods_gte?: InputMaybe; + unmigratedL1Pods_in?: InputMaybe>; + unmigratedL1Pods_lt?: InputMaybe; + unmigratedL1Pods_lte?: InputMaybe; + unmigratedL1Pods_not?: InputMaybe; + unmigratedL1Pods_not_in?: InputMaybe>; +}; + +export enum Field_OrderBy { + Beanstalk = 'beanstalk', + BeanstalkFertilizer1155 = 'beanstalk__fertilizer1155', + BeanstalkId = 'beanstalk__id', + BeanstalkLastSeason = 'beanstalk__lastSeason', + BeanstalkToken = 'beanstalk__token', + CultivationFactor = 'cultivationFactor', + CultivationTemperature = 'cultivationTemperature', + DailySnapshots = 'dailySnapshots', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + HarvestableIndex = 'harvestableIndex', + HarvestablePods = 'harvestablePods', + HarvestedPods = 'harvestedPods', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + NumberOfSowers = 'numberOfSowers', + NumberOfSows = 'numberOfSows', + PlotIndexes = 'plotIndexes', + PodIndex = 'podIndex', + PodRate = 'podRate', + RealRateOfReturn = 'realRateOfReturn', + Season = 'season', + Soil = 'soil', + SownBeans = 'sownBeans', + Temperature = 'temperature', + UnharvestablePods = 'unharvestablePods', + UnmigratedL1Pods = 'unmigratedL1Pods' +} + +export type GaugesInfo = { + __typename?: 'GaugesInfo'; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Cultivation Factor, in percent (i.e. 20.5 = 20.5% cultivation factor) */ + g0CultivationFactor?: Maybe; + /** Whether the Cultivation Factor gauge is active */ + g0IsActive: Scalars['Boolean']['output']; + /** Blight factor; increments each season the twaDeltaB is above 1 and decrements otherwise (minimum zero). */ + g1BlightFactor?: Maybe; + /** Convert down penalty ratio */ + g1ConvertDownPenalty?: Maybe; + /** Whether the Convert Down Penalty gauge is active */ + g1IsActive: Scalars['Boolean']['output']; + /** Convert Up Bonus bdv converted this season */ + g2BdvConvertedThisSeason?: Maybe; + /** Convert Up Bonus current bonus stalk per bdv */ + g2BonusStalkPerBdv?: Maybe; + /** Whether the Convert Up Bonus gauge is active */ + g2IsActive: Scalars['Boolean']['output']; + /** Convert Up Bonus seasonal max convert capacity (in bdv) that is eligible for a bonus */ + g2MaxConvertCapacity?: Maybe; + /** Convert Up Bonus max recorded negative twaDeltaB while the bonus was active */ + g2MaxTwaDeltaB?: Maybe; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** 'gauges' */ + id: Scalars['ID']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; +}; + + +export type GaugesInfoDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type GaugesInfoHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type GaugesInfoDailySnapshot = { + __typename?: 'GaugesInfoDailySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaG0CultivationFactor?: Maybe; + deltaG0IsActive: Scalars['Boolean']['output']; + deltaG1BlightFactor?: Maybe; + deltaG1ConvertDownPenalty?: Maybe; + deltaG1IsActive: Scalars['Boolean']['output']; + deltaG2BdvConvertedThisSeason?: Maybe; + deltaG2BonusStalkPerBdv?: Maybe; + deltaG2IsActive: Scalars['Boolean']['output']; + deltaG2MaxConvertCapacity?: Maybe; + deltaG2MaxTwaDeltaB?: Maybe; + g0CultivationFactor?: Maybe; + g0IsActive: Scalars['Boolean']['output']; + g1BlightFactor?: Maybe; + g1ConvertDownPenalty?: Maybe; + g1IsActive: Scalars['Boolean']['output']; + g2BdvConvertedThisSeason?: Maybe; + g2BonusStalkPerBdv?: Maybe; + g2IsActive: Scalars['Boolean']['output']; + g2MaxConvertCapacity?: Maybe; + g2MaxTwaDeltaB?: Maybe; + /** Unripe token associated with this snapshot */ + gaugesInfo: GaugesInfo; + /** Gauge ID - Day */ + id: Scalars['ID']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type GaugesInfoDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaG0CultivationFactor?: InputMaybe; + deltaG0CultivationFactor_gt?: InputMaybe; + deltaG0CultivationFactor_gte?: InputMaybe; + deltaG0CultivationFactor_in?: InputMaybe>; + deltaG0CultivationFactor_lt?: InputMaybe; + deltaG0CultivationFactor_lte?: InputMaybe; + deltaG0CultivationFactor_not?: InputMaybe; + deltaG0CultivationFactor_not_in?: InputMaybe>; + deltaG0IsActive?: InputMaybe; + deltaG0IsActive_in?: InputMaybe>; + deltaG0IsActive_not?: InputMaybe; + deltaG0IsActive_not_in?: InputMaybe>; + deltaG1BlightFactor?: InputMaybe; + deltaG1BlightFactor_gt?: InputMaybe; + deltaG1BlightFactor_gte?: InputMaybe; + deltaG1BlightFactor_in?: InputMaybe>; + deltaG1BlightFactor_lt?: InputMaybe; + deltaG1BlightFactor_lte?: InputMaybe; + deltaG1BlightFactor_not?: InputMaybe; + deltaG1BlightFactor_not_in?: InputMaybe>; + deltaG1ConvertDownPenalty?: InputMaybe; + deltaG1ConvertDownPenalty_gt?: InputMaybe; + deltaG1ConvertDownPenalty_gte?: InputMaybe; + deltaG1ConvertDownPenalty_in?: InputMaybe>; + deltaG1ConvertDownPenalty_lt?: InputMaybe; + deltaG1ConvertDownPenalty_lte?: InputMaybe; + deltaG1ConvertDownPenalty_not?: InputMaybe; + deltaG1ConvertDownPenalty_not_in?: InputMaybe>; + deltaG1IsActive?: InputMaybe; + deltaG1IsActive_in?: InputMaybe>; + deltaG1IsActive_not?: InputMaybe; + deltaG1IsActive_not_in?: InputMaybe>; + deltaG2BdvConvertedThisSeason?: InputMaybe; + deltaG2BdvConvertedThisSeason_gt?: InputMaybe; + deltaG2BdvConvertedThisSeason_gte?: InputMaybe; + deltaG2BdvConvertedThisSeason_in?: InputMaybe>; + deltaG2BdvConvertedThisSeason_lt?: InputMaybe; + deltaG2BdvConvertedThisSeason_lte?: InputMaybe; + deltaG2BdvConvertedThisSeason_not?: InputMaybe; + deltaG2BdvConvertedThisSeason_not_in?: InputMaybe>; + deltaG2BonusStalkPerBdv?: InputMaybe; + deltaG2BonusStalkPerBdv_gt?: InputMaybe; + deltaG2BonusStalkPerBdv_gte?: InputMaybe; + deltaG2BonusStalkPerBdv_in?: InputMaybe>; + deltaG2BonusStalkPerBdv_lt?: InputMaybe; + deltaG2BonusStalkPerBdv_lte?: InputMaybe; + deltaG2BonusStalkPerBdv_not?: InputMaybe; + deltaG2BonusStalkPerBdv_not_in?: InputMaybe>; + deltaG2IsActive?: InputMaybe; + deltaG2IsActive_in?: InputMaybe>; + deltaG2IsActive_not?: InputMaybe; + deltaG2IsActive_not_in?: InputMaybe>; + deltaG2MaxConvertCapacity?: InputMaybe; + deltaG2MaxConvertCapacity_gt?: InputMaybe; + deltaG2MaxConvertCapacity_gte?: InputMaybe; + deltaG2MaxConvertCapacity_in?: InputMaybe>; + deltaG2MaxConvertCapacity_lt?: InputMaybe; + deltaG2MaxConvertCapacity_lte?: InputMaybe; + deltaG2MaxConvertCapacity_not?: InputMaybe; + deltaG2MaxConvertCapacity_not_in?: InputMaybe>; + deltaG2MaxTwaDeltaB?: InputMaybe; + deltaG2MaxTwaDeltaB_gt?: InputMaybe; + deltaG2MaxTwaDeltaB_gte?: InputMaybe; + deltaG2MaxTwaDeltaB_in?: InputMaybe>; + deltaG2MaxTwaDeltaB_lt?: InputMaybe; + deltaG2MaxTwaDeltaB_lte?: InputMaybe; + deltaG2MaxTwaDeltaB_not?: InputMaybe; + deltaG2MaxTwaDeltaB_not_in?: InputMaybe>; + g0CultivationFactor?: InputMaybe; + g0CultivationFactor_gt?: InputMaybe; + g0CultivationFactor_gte?: InputMaybe; + g0CultivationFactor_in?: InputMaybe>; + g0CultivationFactor_lt?: InputMaybe; + g0CultivationFactor_lte?: InputMaybe; + g0CultivationFactor_not?: InputMaybe; + g0CultivationFactor_not_in?: InputMaybe>; + g0IsActive?: InputMaybe; + g0IsActive_in?: InputMaybe>; + g0IsActive_not?: InputMaybe; + g0IsActive_not_in?: InputMaybe>; + g1BlightFactor?: InputMaybe; + g1BlightFactor_gt?: InputMaybe; + g1BlightFactor_gte?: InputMaybe; + g1BlightFactor_in?: InputMaybe>; + g1BlightFactor_lt?: InputMaybe; + g1BlightFactor_lte?: InputMaybe; + g1BlightFactor_not?: InputMaybe; + g1BlightFactor_not_in?: InputMaybe>; + g1ConvertDownPenalty?: InputMaybe; + g1ConvertDownPenalty_gt?: InputMaybe; + g1ConvertDownPenalty_gte?: InputMaybe; + g1ConvertDownPenalty_in?: InputMaybe>; + g1ConvertDownPenalty_lt?: InputMaybe; + g1ConvertDownPenalty_lte?: InputMaybe; + g1ConvertDownPenalty_not?: InputMaybe; + g1ConvertDownPenalty_not_in?: InputMaybe>; + g1IsActive?: InputMaybe; + g1IsActive_in?: InputMaybe>; + g1IsActive_not?: InputMaybe; + g1IsActive_not_in?: InputMaybe>; + g2BdvConvertedThisSeason?: InputMaybe; + g2BdvConvertedThisSeason_gt?: InputMaybe; + g2BdvConvertedThisSeason_gte?: InputMaybe; + g2BdvConvertedThisSeason_in?: InputMaybe>; + g2BdvConvertedThisSeason_lt?: InputMaybe; + g2BdvConvertedThisSeason_lte?: InputMaybe; + g2BdvConvertedThisSeason_not?: InputMaybe; + g2BdvConvertedThisSeason_not_in?: InputMaybe>; + g2BonusStalkPerBdv?: InputMaybe; + g2BonusStalkPerBdv_gt?: InputMaybe; + g2BonusStalkPerBdv_gte?: InputMaybe; + g2BonusStalkPerBdv_in?: InputMaybe>; + g2BonusStalkPerBdv_lt?: InputMaybe; + g2BonusStalkPerBdv_lte?: InputMaybe; + g2BonusStalkPerBdv_not?: InputMaybe; + g2BonusStalkPerBdv_not_in?: InputMaybe>; + g2IsActive?: InputMaybe; + g2IsActive_in?: InputMaybe>; + g2IsActive_not?: InputMaybe; + g2IsActive_not_in?: InputMaybe>; + g2MaxConvertCapacity?: InputMaybe; + g2MaxConvertCapacity_gt?: InputMaybe; + g2MaxConvertCapacity_gte?: InputMaybe; + g2MaxConvertCapacity_in?: InputMaybe>; + g2MaxConvertCapacity_lt?: InputMaybe; + g2MaxConvertCapacity_lte?: InputMaybe; + g2MaxConvertCapacity_not?: InputMaybe; + g2MaxConvertCapacity_not_in?: InputMaybe>; + g2MaxTwaDeltaB?: InputMaybe; + g2MaxTwaDeltaB_gt?: InputMaybe; + g2MaxTwaDeltaB_gte?: InputMaybe; + g2MaxTwaDeltaB_in?: InputMaybe>; + g2MaxTwaDeltaB_lt?: InputMaybe; + g2MaxTwaDeltaB_lte?: InputMaybe; + g2MaxTwaDeltaB_not?: InputMaybe; + g2MaxTwaDeltaB_not_in?: InputMaybe>; + gaugesInfo?: InputMaybe; + gaugesInfo_?: InputMaybe; + gaugesInfo_contains?: InputMaybe; + gaugesInfo_contains_nocase?: InputMaybe; + gaugesInfo_ends_with?: InputMaybe; + gaugesInfo_ends_with_nocase?: InputMaybe; + gaugesInfo_gt?: InputMaybe; + gaugesInfo_gte?: InputMaybe; + gaugesInfo_in?: InputMaybe>; + gaugesInfo_lt?: InputMaybe; + gaugesInfo_lte?: InputMaybe; + gaugesInfo_not?: InputMaybe; + gaugesInfo_not_contains?: InputMaybe; + gaugesInfo_not_contains_nocase?: InputMaybe; + gaugesInfo_not_ends_with?: InputMaybe; + gaugesInfo_not_ends_with_nocase?: InputMaybe; + gaugesInfo_not_in?: InputMaybe>; + gaugesInfo_not_starts_with?: InputMaybe; + gaugesInfo_not_starts_with_nocase?: InputMaybe; + gaugesInfo_starts_with?: InputMaybe; + gaugesInfo_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum GaugesInfoDailySnapshot_OrderBy { + CreatedAt = 'createdAt', + DeltaG0CultivationFactor = 'deltaG0CultivationFactor', + DeltaG0IsActive = 'deltaG0IsActive', + DeltaG1BlightFactor = 'deltaG1BlightFactor', + DeltaG1ConvertDownPenalty = 'deltaG1ConvertDownPenalty', + DeltaG1IsActive = 'deltaG1IsActive', + DeltaG2BdvConvertedThisSeason = 'deltaG2BdvConvertedThisSeason', + DeltaG2BonusStalkPerBdv = 'deltaG2BonusStalkPerBdv', + DeltaG2IsActive = 'deltaG2IsActive', + DeltaG2MaxConvertCapacity = 'deltaG2MaxConvertCapacity', + DeltaG2MaxTwaDeltaB = 'deltaG2MaxTwaDeltaB', + G0CultivationFactor = 'g0CultivationFactor', + G0IsActive = 'g0IsActive', + G1BlightFactor = 'g1BlightFactor', + G1ConvertDownPenalty = 'g1ConvertDownPenalty', + G1IsActive = 'g1IsActive', + G2BdvConvertedThisSeason = 'g2BdvConvertedThisSeason', + G2BonusStalkPerBdv = 'g2BonusStalkPerBdv', + G2IsActive = 'g2IsActive', + G2MaxConvertCapacity = 'g2MaxConvertCapacity', + G2MaxTwaDeltaB = 'g2MaxTwaDeltaB', + GaugesInfo = 'gaugesInfo', + GaugesInfoG0CultivationFactor = 'gaugesInfo__g0CultivationFactor', + GaugesInfoG0IsActive = 'gaugesInfo__g0IsActive', + GaugesInfoG1BlightFactor = 'gaugesInfo__g1BlightFactor', + GaugesInfoG1ConvertDownPenalty = 'gaugesInfo__g1ConvertDownPenalty', + GaugesInfoG1IsActive = 'gaugesInfo__g1IsActive', + GaugesInfoG2BdvConvertedThisSeason = 'gaugesInfo__g2BdvConvertedThisSeason', + GaugesInfoG2BonusStalkPerBdv = 'gaugesInfo__g2BonusStalkPerBdv', + GaugesInfoG2IsActive = 'gaugesInfo__g2IsActive', + GaugesInfoG2MaxConvertCapacity = 'gaugesInfo__g2MaxConvertCapacity', + GaugesInfoG2MaxTwaDeltaB = 'gaugesInfo__g2MaxTwaDeltaB', + GaugesInfoId = 'gaugesInfo__id', + GaugesInfoLastDailySnapshotDay = 'gaugesInfo__lastDailySnapshotDay', + GaugesInfoLastHourlySnapshotSeason = 'gaugesInfo__lastHourlySnapshotSeason', + Id = 'id', + Season = 'season', + UpdatedAt = 'updatedAt' +} + +export type GaugesInfoHourlySnapshot = { + __typename?: 'GaugesInfoHourlySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaG0CultivationFactor?: Maybe; + deltaG0IsActive: Scalars['Boolean']['output']; + deltaG1BlightFactor?: Maybe; + deltaG1ConvertDownPenalty?: Maybe; + deltaG1IsActive: Scalars['Boolean']['output']; + deltaG2BdvConvertedThisSeason?: Maybe; + deltaG2BonusStalkPerBdv?: Maybe; + deltaG2IsActive: Scalars['Boolean']['output']; + deltaG2MaxConvertCapacity?: Maybe; + deltaG2MaxTwaDeltaB?: Maybe; + g0CultivationFactor?: Maybe; + g0IsActive: Scalars['Boolean']['output']; + g1BlightFactor?: Maybe; + g1ConvertDownPenalty?: Maybe; + g1IsActive: Scalars['Boolean']['output']; + g2BdvConvertedThisSeason?: Maybe; + g2BonusStalkPerBdv?: Maybe; + g2IsActive: Scalars['Boolean']['output']; + g2MaxConvertCapacity?: Maybe; + g2MaxTwaDeltaB?: Maybe; + /** Unripe token associated with this snapshot */ + gaugesInfo: GaugesInfo; + /** Gauge ID - Season */ + id: Scalars['ID']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type GaugesInfoHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaG0CultivationFactor?: InputMaybe; + deltaG0CultivationFactor_gt?: InputMaybe; + deltaG0CultivationFactor_gte?: InputMaybe; + deltaG0CultivationFactor_in?: InputMaybe>; + deltaG0CultivationFactor_lt?: InputMaybe; + deltaG0CultivationFactor_lte?: InputMaybe; + deltaG0CultivationFactor_not?: InputMaybe; + deltaG0CultivationFactor_not_in?: InputMaybe>; + deltaG0IsActive?: InputMaybe; + deltaG0IsActive_in?: InputMaybe>; + deltaG0IsActive_not?: InputMaybe; + deltaG0IsActive_not_in?: InputMaybe>; + deltaG1BlightFactor?: InputMaybe; + deltaG1BlightFactor_gt?: InputMaybe; + deltaG1BlightFactor_gte?: InputMaybe; + deltaG1BlightFactor_in?: InputMaybe>; + deltaG1BlightFactor_lt?: InputMaybe; + deltaG1BlightFactor_lte?: InputMaybe; + deltaG1BlightFactor_not?: InputMaybe; + deltaG1BlightFactor_not_in?: InputMaybe>; + deltaG1ConvertDownPenalty?: InputMaybe; + deltaG1ConvertDownPenalty_gt?: InputMaybe; + deltaG1ConvertDownPenalty_gte?: InputMaybe; + deltaG1ConvertDownPenalty_in?: InputMaybe>; + deltaG1ConvertDownPenalty_lt?: InputMaybe; + deltaG1ConvertDownPenalty_lte?: InputMaybe; + deltaG1ConvertDownPenalty_not?: InputMaybe; + deltaG1ConvertDownPenalty_not_in?: InputMaybe>; + deltaG1IsActive?: InputMaybe; + deltaG1IsActive_in?: InputMaybe>; + deltaG1IsActive_not?: InputMaybe; + deltaG1IsActive_not_in?: InputMaybe>; + deltaG2BdvConvertedThisSeason?: InputMaybe; + deltaG2BdvConvertedThisSeason_gt?: InputMaybe; + deltaG2BdvConvertedThisSeason_gte?: InputMaybe; + deltaG2BdvConvertedThisSeason_in?: InputMaybe>; + deltaG2BdvConvertedThisSeason_lt?: InputMaybe; + deltaG2BdvConvertedThisSeason_lte?: InputMaybe; + deltaG2BdvConvertedThisSeason_not?: InputMaybe; + deltaG2BdvConvertedThisSeason_not_in?: InputMaybe>; + deltaG2BonusStalkPerBdv?: InputMaybe; + deltaG2BonusStalkPerBdv_gt?: InputMaybe; + deltaG2BonusStalkPerBdv_gte?: InputMaybe; + deltaG2BonusStalkPerBdv_in?: InputMaybe>; + deltaG2BonusStalkPerBdv_lt?: InputMaybe; + deltaG2BonusStalkPerBdv_lte?: InputMaybe; + deltaG2BonusStalkPerBdv_not?: InputMaybe; + deltaG2BonusStalkPerBdv_not_in?: InputMaybe>; + deltaG2IsActive?: InputMaybe; + deltaG2IsActive_in?: InputMaybe>; + deltaG2IsActive_not?: InputMaybe; + deltaG2IsActive_not_in?: InputMaybe>; + deltaG2MaxConvertCapacity?: InputMaybe; + deltaG2MaxConvertCapacity_gt?: InputMaybe; + deltaG2MaxConvertCapacity_gte?: InputMaybe; + deltaG2MaxConvertCapacity_in?: InputMaybe>; + deltaG2MaxConvertCapacity_lt?: InputMaybe; + deltaG2MaxConvertCapacity_lte?: InputMaybe; + deltaG2MaxConvertCapacity_not?: InputMaybe; + deltaG2MaxConvertCapacity_not_in?: InputMaybe>; + deltaG2MaxTwaDeltaB?: InputMaybe; + deltaG2MaxTwaDeltaB_gt?: InputMaybe; + deltaG2MaxTwaDeltaB_gte?: InputMaybe; + deltaG2MaxTwaDeltaB_in?: InputMaybe>; + deltaG2MaxTwaDeltaB_lt?: InputMaybe; + deltaG2MaxTwaDeltaB_lte?: InputMaybe; + deltaG2MaxTwaDeltaB_not?: InputMaybe; + deltaG2MaxTwaDeltaB_not_in?: InputMaybe>; + g0CultivationFactor?: InputMaybe; + g0CultivationFactor_gt?: InputMaybe; + g0CultivationFactor_gte?: InputMaybe; + g0CultivationFactor_in?: InputMaybe>; + g0CultivationFactor_lt?: InputMaybe; + g0CultivationFactor_lte?: InputMaybe; + g0CultivationFactor_not?: InputMaybe; + g0CultivationFactor_not_in?: InputMaybe>; + g0IsActive?: InputMaybe; + g0IsActive_in?: InputMaybe>; + g0IsActive_not?: InputMaybe; + g0IsActive_not_in?: InputMaybe>; + g1BlightFactor?: InputMaybe; + g1BlightFactor_gt?: InputMaybe; + g1BlightFactor_gte?: InputMaybe; + g1BlightFactor_in?: InputMaybe>; + g1BlightFactor_lt?: InputMaybe; + g1BlightFactor_lte?: InputMaybe; + g1BlightFactor_not?: InputMaybe; + g1BlightFactor_not_in?: InputMaybe>; + g1ConvertDownPenalty?: InputMaybe; + g1ConvertDownPenalty_gt?: InputMaybe; + g1ConvertDownPenalty_gte?: InputMaybe; + g1ConvertDownPenalty_in?: InputMaybe>; + g1ConvertDownPenalty_lt?: InputMaybe; + g1ConvertDownPenalty_lte?: InputMaybe; + g1ConvertDownPenalty_not?: InputMaybe; + g1ConvertDownPenalty_not_in?: InputMaybe>; + g1IsActive?: InputMaybe; + g1IsActive_in?: InputMaybe>; + g1IsActive_not?: InputMaybe; + g1IsActive_not_in?: InputMaybe>; + g2BdvConvertedThisSeason?: InputMaybe; + g2BdvConvertedThisSeason_gt?: InputMaybe; + g2BdvConvertedThisSeason_gte?: InputMaybe; + g2BdvConvertedThisSeason_in?: InputMaybe>; + g2BdvConvertedThisSeason_lt?: InputMaybe; + g2BdvConvertedThisSeason_lte?: InputMaybe; + g2BdvConvertedThisSeason_not?: InputMaybe; + g2BdvConvertedThisSeason_not_in?: InputMaybe>; + g2BonusStalkPerBdv?: InputMaybe; + g2BonusStalkPerBdv_gt?: InputMaybe; + g2BonusStalkPerBdv_gte?: InputMaybe; + g2BonusStalkPerBdv_in?: InputMaybe>; + g2BonusStalkPerBdv_lt?: InputMaybe; + g2BonusStalkPerBdv_lte?: InputMaybe; + g2BonusStalkPerBdv_not?: InputMaybe; + g2BonusStalkPerBdv_not_in?: InputMaybe>; + g2IsActive?: InputMaybe; + g2IsActive_in?: InputMaybe>; + g2IsActive_not?: InputMaybe; + g2IsActive_not_in?: InputMaybe>; + g2MaxConvertCapacity?: InputMaybe; + g2MaxConvertCapacity_gt?: InputMaybe; + g2MaxConvertCapacity_gte?: InputMaybe; + g2MaxConvertCapacity_in?: InputMaybe>; + g2MaxConvertCapacity_lt?: InputMaybe; + g2MaxConvertCapacity_lte?: InputMaybe; + g2MaxConvertCapacity_not?: InputMaybe; + g2MaxConvertCapacity_not_in?: InputMaybe>; + g2MaxTwaDeltaB?: InputMaybe; + g2MaxTwaDeltaB_gt?: InputMaybe; + g2MaxTwaDeltaB_gte?: InputMaybe; + g2MaxTwaDeltaB_in?: InputMaybe>; + g2MaxTwaDeltaB_lt?: InputMaybe; + g2MaxTwaDeltaB_lte?: InputMaybe; + g2MaxTwaDeltaB_not?: InputMaybe; + g2MaxTwaDeltaB_not_in?: InputMaybe>; + gaugesInfo?: InputMaybe; + gaugesInfo_?: InputMaybe; + gaugesInfo_contains?: InputMaybe; + gaugesInfo_contains_nocase?: InputMaybe; + gaugesInfo_ends_with?: InputMaybe; + gaugesInfo_ends_with_nocase?: InputMaybe; + gaugesInfo_gt?: InputMaybe; + gaugesInfo_gte?: InputMaybe; + gaugesInfo_in?: InputMaybe>; + gaugesInfo_lt?: InputMaybe; + gaugesInfo_lte?: InputMaybe; + gaugesInfo_not?: InputMaybe; + gaugesInfo_not_contains?: InputMaybe; + gaugesInfo_not_contains_nocase?: InputMaybe; + gaugesInfo_not_ends_with?: InputMaybe; + gaugesInfo_not_ends_with_nocase?: InputMaybe; + gaugesInfo_not_in?: InputMaybe>; + gaugesInfo_not_starts_with?: InputMaybe; + gaugesInfo_not_starts_with_nocase?: InputMaybe; + gaugesInfo_starts_with?: InputMaybe; + gaugesInfo_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum GaugesInfoHourlySnapshot_OrderBy { + CreatedAt = 'createdAt', + DeltaG0CultivationFactor = 'deltaG0CultivationFactor', + DeltaG0IsActive = 'deltaG0IsActive', + DeltaG1BlightFactor = 'deltaG1BlightFactor', + DeltaG1ConvertDownPenalty = 'deltaG1ConvertDownPenalty', + DeltaG1IsActive = 'deltaG1IsActive', + DeltaG2BdvConvertedThisSeason = 'deltaG2BdvConvertedThisSeason', + DeltaG2BonusStalkPerBdv = 'deltaG2BonusStalkPerBdv', + DeltaG2IsActive = 'deltaG2IsActive', + DeltaG2MaxConvertCapacity = 'deltaG2MaxConvertCapacity', + DeltaG2MaxTwaDeltaB = 'deltaG2MaxTwaDeltaB', + G0CultivationFactor = 'g0CultivationFactor', + G0IsActive = 'g0IsActive', + G1BlightFactor = 'g1BlightFactor', + G1ConvertDownPenalty = 'g1ConvertDownPenalty', + G1IsActive = 'g1IsActive', + G2BdvConvertedThisSeason = 'g2BdvConvertedThisSeason', + G2BonusStalkPerBdv = 'g2BonusStalkPerBdv', + G2IsActive = 'g2IsActive', + G2MaxConvertCapacity = 'g2MaxConvertCapacity', + G2MaxTwaDeltaB = 'g2MaxTwaDeltaB', + GaugesInfo = 'gaugesInfo', + GaugesInfoG0CultivationFactor = 'gaugesInfo__g0CultivationFactor', + GaugesInfoG0IsActive = 'gaugesInfo__g0IsActive', + GaugesInfoG1BlightFactor = 'gaugesInfo__g1BlightFactor', + GaugesInfoG1ConvertDownPenalty = 'gaugesInfo__g1ConvertDownPenalty', + GaugesInfoG1IsActive = 'gaugesInfo__g1IsActive', + GaugesInfoG2BdvConvertedThisSeason = 'gaugesInfo__g2BdvConvertedThisSeason', + GaugesInfoG2BonusStalkPerBdv = 'gaugesInfo__g2BonusStalkPerBdv', + GaugesInfoG2IsActive = 'gaugesInfo__g2IsActive', + GaugesInfoG2MaxConvertCapacity = 'gaugesInfo__g2MaxConvertCapacity', + GaugesInfoG2MaxTwaDeltaB = 'gaugesInfo__g2MaxTwaDeltaB', + GaugesInfoId = 'gaugesInfo__id', + GaugesInfoLastDailySnapshotDay = 'gaugesInfo__lastDailySnapshotDay', + GaugesInfoLastHourlySnapshotSeason = 'gaugesInfo__lastHourlySnapshotSeason', + Id = 'id', + Season = 'season', + UpdatedAt = 'updatedAt' +} + +export type GaugesInfo_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + dailySnapshots_?: InputMaybe; + g0CultivationFactor?: InputMaybe; + g0CultivationFactor_gt?: InputMaybe; + g0CultivationFactor_gte?: InputMaybe; + g0CultivationFactor_in?: InputMaybe>; + g0CultivationFactor_lt?: InputMaybe; + g0CultivationFactor_lte?: InputMaybe; + g0CultivationFactor_not?: InputMaybe; + g0CultivationFactor_not_in?: InputMaybe>; + g0IsActive?: InputMaybe; + g0IsActive_in?: InputMaybe>; + g0IsActive_not?: InputMaybe; + g0IsActive_not_in?: InputMaybe>; + g1BlightFactor?: InputMaybe; + g1BlightFactor_gt?: InputMaybe; + g1BlightFactor_gte?: InputMaybe; + g1BlightFactor_in?: InputMaybe>; + g1BlightFactor_lt?: InputMaybe; + g1BlightFactor_lte?: InputMaybe; + g1BlightFactor_not?: InputMaybe; + g1BlightFactor_not_in?: InputMaybe>; + g1ConvertDownPenalty?: InputMaybe; + g1ConvertDownPenalty_gt?: InputMaybe; + g1ConvertDownPenalty_gte?: InputMaybe; + g1ConvertDownPenalty_in?: InputMaybe>; + g1ConvertDownPenalty_lt?: InputMaybe; + g1ConvertDownPenalty_lte?: InputMaybe; + g1ConvertDownPenalty_not?: InputMaybe; + g1ConvertDownPenalty_not_in?: InputMaybe>; + g1IsActive?: InputMaybe; + g1IsActive_in?: InputMaybe>; + g1IsActive_not?: InputMaybe; + g1IsActive_not_in?: InputMaybe>; + g2BdvConvertedThisSeason?: InputMaybe; + g2BdvConvertedThisSeason_gt?: InputMaybe; + g2BdvConvertedThisSeason_gte?: InputMaybe; + g2BdvConvertedThisSeason_in?: InputMaybe>; + g2BdvConvertedThisSeason_lt?: InputMaybe; + g2BdvConvertedThisSeason_lte?: InputMaybe; + g2BdvConvertedThisSeason_not?: InputMaybe; + g2BdvConvertedThisSeason_not_in?: InputMaybe>; + g2BonusStalkPerBdv?: InputMaybe; + g2BonusStalkPerBdv_gt?: InputMaybe; + g2BonusStalkPerBdv_gte?: InputMaybe; + g2BonusStalkPerBdv_in?: InputMaybe>; + g2BonusStalkPerBdv_lt?: InputMaybe; + g2BonusStalkPerBdv_lte?: InputMaybe; + g2BonusStalkPerBdv_not?: InputMaybe; + g2BonusStalkPerBdv_not_in?: InputMaybe>; + g2IsActive?: InputMaybe; + g2IsActive_in?: InputMaybe>; + g2IsActive_not?: InputMaybe; + g2IsActive_not_in?: InputMaybe>; + g2MaxConvertCapacity?: InputMaybe; + g2MaxConvertCapacity_gt?: InputMaybe; + g2MaxConvertCapacity_gte?: InputMaybe; + g2MaxConvertCapacity_in?: InputMaybe>; + g2MaxConvertCapacity_lt?: InputMaybe; + g2MaxConvertCapacity_lte?: InputMaybe; + g2MaxConvertCapacity_not?: InputMaybe; + g2MaxConvertCapacity_not_in?: InputMaybe>; + g2MaxTwaDeltaB?: InputMaybe; + g2MaxTwaDeltaB_gt?: InputMaybe; + g2MaxTwaDeltaB_gte?: InputMaybe; + g2MaxTwaDeltaB_in?: InputMaybe>; + g2MaxTwaDeltaB_lt?: InputMaybe; + g2MaxTwaDeltaB_lte?: InputMaybe; + g2MaxTwaDeltaB_not?: InputMaybe; + g2MaxTwaDeltaB_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; +}; + +export enum GaugesInfo_OrderBy { + DailySnapshots = 'dailySnapshots', + G0CultivationFactor = 'g0CultivationFactor', + G0IsActive = 'g0IsActive', + G1BlightFactor = 'g1BlightFactor', + G1ConvertDownPenalty = 'g1ConvertDownPenalty', + G1IsActive = 'g1IsActive', + G2BdvConvertedThisSeason = 'g2BdvConvertedThisSeason', + G2BonusStalkPerBdv = 'g2BonusStalkPerBdv', + G2IsActive = 'g2IsActive', + G2MaxConvertCapacity = 'g2MaxConvertCapacity', + G2MaxTwaDeltaB = 'g2MaxTwaDeltaB', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason' +} + +export type Germinating = { + __typename?: 'Germinating'; + /** Address of the token or account which is germinating */ + address: Scalars['Bytes']['output']; + /** Germinating bdv. This only applies to a Token address */ + bdv: Scalars['BigInt']['output']; + /** Address-(EVEN|ODD) */ + id: Scalars['ID']['output']; + /** True when the address is a farmer account */ + isFarmer: Scalars['Boolean']['output']; + /** The season in which the germination started */ + season: Scalars['Int']['output']; + /** Germinating stalk. This only applies to farmer/protocol address */ + stalk: Scalars['BigInt']['output']; + /** Germinating tokens. This only applies to a Token address */ + tokenAmount: Scalars['BigInt']['output']; + /** EVEN or ODD */ + type: Scalars['String']['output']; +}; + +export type Germinating_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + address?: InputMaybe; + address_contains?: InputMaybe; + address_gt?: InputMaybe; + address_gte?: InputMaybe; + address_in?: InputMaybe>; + address_lt?: InputMaybe; + address_lte?: InputMaybe; + address_not?: InputMaybe; + address_not_contains?: InputMaybe; + address_not_in?: InputMaybe>; + and?: InputMaybe>>; + bdv?: InputMaybe; + bdv_gt?: InputMaybe; + bdv_gte?: InputMaybe; + bdv_in?: InputMaybe>; + bdv_lt?: InputMaybe; + bdv_lte?: InputMaybe; + bdv_not?: InputMaybe; + bdv_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + isFarmer?: InputMaybe; + isFarmer_in?: InputMaybe>; + isFarmer_not?: InputMaybe; + isFarmer_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + stalk?: InputMaybe; + stalk_gt?: InputMaybe; + stalk_gte?: InputMaybe; + stalk_in?: InputMaybe>; + stalk_lt?: InputMaybe; + stalk_lte?: InputMaybe; + stalk_not?: InputMaybe; + stalk_not_in?: InputMaybe>; + tokenAmount?: InputMaybe; + tokenAmount_gt?: InputMaybe; + tokenAmount_gte?: InputMaybe; + tokenAmount_in?: InputMaybe>; + tokenAmount_lt?: InputMaybe; + tokenAmount_lte?: InputMaybe; + tokenAmount_not?: InputMaybe; + tokenAmount_not_in?: InputMaybe>; + type?: InputMaybe; + type_contains?: InputMaybe; + type_contains_nocase?: InputMaybe; + type_ends_with?: InputMaybe; + type_ends_with_nocase?: InputMaybe; + type_gt?: InputMaybe; + type_gte?: InputMaybe; + type_in?: InputMaybe>; + type_lt?: InputMaybe; + type_lte?: InputMaybe; + type_not?: InputMaybe; + type_not_contains?: InputMaybe; + type_not_contains_nocase?: InputMaybe; + type_not_ends_with?: InputMaybe; + type_not_ends_with_nocase?: InputMaybe; + type_not_in?: InputMaybe>; + type_not_starts_with?: InputMaybe; + type_not_starts_with_nocase?: InputMaybe; + type_starts_with?: InputMaybe; + type_starts_with_nocase?: InputMaybe; +}; + +export enum Germinating_OrderBy { + Address = 'address', + Bdv = 'bdv', + Id = 'id', + IsFarmer = 'isFarmer', + Season = 'season', + Stalk = 'stalk', + TokenAmount = 'tokenAmount', + Type = 'type' +} + +export type MarketPerformanceSeasonal = { + __typename?: 'MarketPerformanceSeasonal'; + /** Cumulative percentage change in value of each deposited non-bean token. It is possible for this value to appear out of sync with cumulativeUsdChange; it does not account for the number of these tokens deposited at the time of the value changing (only their ratios). Ordering according to silo.whitelistedTokens */ + cumulativePercentChange?: Maybe>; + /** Cumulative percentage change in value across all deposited non-bean tokens. It is possible for this value to appear out of sync with cumulativeUsdChange; it does not account for the number of these tokens deposited at the time of the value changing (only their ratios) */ + cumulativeTotalPercentChange?: Maybe; + /** Cumulative net change in usd value across all deposited non-bean tokens */ + cumulativeTotalUsdChange?: Maybe; + /** Cumulative net change in usd value of each deposited non-bean token. Ordering according to silo.whitelistedTokens */ + cumulativeUsdChange?: Maybe>; + /** Silo ID - Season */ + id: Scalars['ID']['output']; + /** Seasonal percentage change in value of each deposited non-bean token. Ordering according to silo.whitelistedTokens. Null for !valid */ + percentChange?: Maybe>; + /** Amount of tokens in each well, as of the previous season starting. Ordering according to silo.whitelistedTokens */ + prevSeasonTokenBalances: Array; + /** Prices of the non-bean token in each well, as of the previous season starting. Ordering according to silo.whitelistedTokens */ + prevSeasonTokenUsdPrices: Array; + /** Usd value of the non-bean tokens in each well, as of the previous season starting. Ordering according to silo.whitelistedTokens */ + prevSeasonTokenUsdValues: Array; + /** Usd value across all the non-bean tokens in each well, as of the previous season starting */ + prevSeasonTotalUsd: Scalars['BigDecimal']['output']; + season: Scalars['Int']['output']; + silo: Silo; + /** Prices of the non-bean token in each well, as of this season starting. Ordering according to silo.whitelistedTokens. Null for !valid */ + thisSeasonTokenUsdPrices?: Maybe>; + /** Usd value of prevSeasonTokenBalances, as of this season starting. Ordering according to silo.whitelistedTokens. Null for !valid */ + thisSeasonTokenUsdValues?: Maybe>; + /** Usd value across all prevSeasonTokenBalances, as of this season starting. Null for !valid */ + thisSeasonTotalUsd?: Maybe; + /** Timestamp of this entry becoming valid */ + timestamp?: Maybe; + /** Seasonal percentage change in value across all deposited non-bean tokens. Null for !valid */ + totalPercentChange?: Maybe; + /** Seasonal net change in usd value across all deposited non-bean tokens. Null for !valid */ + totalUsdChange?: Maybe; + /** Seasonal net change in usd value of each deposited non-bean token. Ordering according to silo.whitelistedTokens. Null for !valid */ + usdChange?: Maybe>; + /** True if the entity is valid; entity is not valid for (current season + 1), the 'this' season has not occurred yet */ + valid: Scalars['Boolean']['output']; +}; + +export type MarketPerformanceSeasonal_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + cumulativePercentChange?: InputMaybe>; + cumulativePercentChange_contains?: InputMaybe>; + cumulativePercentChange_contains_nocase?: InputMaybe>; + cumulativePercentChange_not?: InputMaybe>; + cumulativePercentChange_not_contains?: InputMaybe>; + cumulativePercentChange_not_contains_nocase?: InputMaybe>; + cumulativeTotalPercentChange?: InputMaybe; + cumulativeTotalPercentChange_gt?: InputMaybe; + cumulativeTotalPercentChange_gte?: InputMaybe; + cumulativeTotalPercentChange_in?: InputMaybe>; + cumulativeTotalPercentChange_lt?: InputMaybe; + cumulativeTotalPercentChange_lte?: InputMaybe; + cumulativeTotalPercentChange_not?: InputMaybe; + cumulativeTotalPercentChange_not_in?: InputMaybe>; + cumulativeTotalUsdChange?: InputMaybe; + cumulativeTotalUsdChange_gt?: InputMaybe; + cumulativeTotalUsdChange_gte?: InputMaybe; + cumulativeTotalUsdChange_in?: InputMaybe>; + cumulativeTotalUsdChange_lt?: InputMaybe; + cumulativeTotalUsdChange_lte?: InputMaybe; + cumulativeTotalUsdChange_not?: InputMaybe; + cumulativeTotalUsdChange_not_in?: InputMaybe>; + cumulativeUsdChange?: InputMaybe>; + cumulativeUsdChange_contains?: InputMaybe>; + cumulativeUsdChange_contains_nocase?: InputMaybe>; + cumulativeUsdChange_not?: InputMaybe>; + cumulativeUsdChange_not_contains?: InputMaybe>; + cumulativeUsdChange_not_contains_nocase?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + percentChange?: InputMaybe>; + percentChange_contains?: InputMaybe>; + percentChange_contains_nocase?: InputMaybe>; + percentChange_not?: InputMaybe>; + percentChange_not_contains?: InputMaybe>; + percentChange_not_contains_nocase?: InputMaybe>; + prevSeasonTokenBalances?: InputMaybe>; + prevSeasonTokenBalances_contains?: InputMaybe>; + prevSeasonTokenBalances_contains_nocase?: InputMaybe>; + prevSeasonTokenBalances_not?: InputMaybe>; + prevSeasonTokenBalances_not_contains?: InputMaybe>; + prevSeasonTokenBalances_not_contains_nocase?: InputMaybe>; + prevSeasonTokenUsdPrices?: InputMaybe>; + prevSeasonTokenUsdPrices_contains?: InputMaybe>; + prevSeasonTokenUsdPrices_contains_nocase?: InputMaybe>; + prevSeasonTokenUsdPrices_not?: InputMaybe>; + prevSeasonTokenUsdPrices_not_contains?: InputMaybe>; + prevSeasonTokenUsdPrices_not_contains_nocase?: InputMaybe>; + prevSeasonTokenUsdValues?: InputMaybe>; + prevSeasonTokenUsdValues_contains?: InputMaybe>; + prevSeasonTokenUsdValues_contains_nocase?: InputMaybe>; + prevSeasonTokenUsdValues_not?: InputMaybe>; + prevSeasonTokenUsdValues_not_contains?: InputMaybe>; + prevSeasonTokenUsdValues_not_contains_nocase?: InputMaybe>; + prevSeasonTotalUsd?: InputMaybe; + prevSeasonTotalUsd_gt?: InputMaybe; + prevSeasonTotalUsd_gte?: InputMaybe; + prevSeasonTotalUsd_in?: InputMaybe>; + prevSeasonTotalUsd_lt?: InputMaybe; + prevSeasonTotalUsd_lte?: InputMaybe; + prevSeasonTotalUsd_not?: InputMaybe; + prevSeasonTotalUsd_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + silo?: InputMaybe; + silo_?: InputMaybe; + silo_contains?: InputMaybe; + silo_contains_nocase?: InputMaybe; + silo_ends_with?: InputMaybe; + silo_ends_with_nocase?: InputMaybe; + silo_gt?: InputMaybe; + silo_gte?: InputMaybe; + silo_in?: InputMaybe>; + silo_lt?: InputMaybe; + silo_lte?: InputMaybe; + silo_not?: InputMaybe; + silo_not_contains?: InputMaybe; + silo_not_contains_nocase?: InputMaybe; + silo_not_ends_with?: InputMaybe; + silo_not_ends_with_nocase?: InputMaybe; + silo_not_in?: InputMaybe>; + silo_not_starts_with?: InputMaybe; + silo_not_starts_with_nocase?: InputMaybe; + silo_starts_with?: InputMaybe; + silo_starts_with_nocase?: InputMaybe; + thisSeasonTokenUsdPrices?: InputMaybe>; + thisSeasonTokenUsdPrices_contains?: InputMaybe>; + thisSeasonTokenUsdPrices_contains_nocase?: InputMaybe>; + thisSeasonTokenUsdPrices_not?: InputMaybe>; + thisSeasonTokenUsdPrices_not_contains?: InputMaybe>; + thisSeasonTokenUsdPrices_not_contains_nocase?: InputMaybe>; + thisSeasonTokenUsdValues?: InputMaybe>; + thisSeasonTokenUsdValues_contains?: InputMaybe>; + thisSeasonTokenUsdValues_contains_nocase?: InputMaybe>; + thisSeasonTokenUsdValues_not?: InputMaybe>; + thisSeasonTokenUsdValues_not_contains?: InputMaybe>; + thisSeasonTokenUsdValues_not_contains_nocase?: InputMaybe>; + thisSeasonTotalUsd?: InputMaybe; + thisSeasonTotalUsd_gt?: InputMaybe; + thisSeasonTotalUsd_gte?: InputMaybe; + thisSeasonTotalUsd_in?: InputMaybe>; + thisSeasonTotalUsd_lt?: InputMaybe; + thisSeasonTotalUsd_lte?: InputMaybe; + thisSeasonTotalUsd_not?: InputMaybe; + thisSeasonTotalUsd_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + totalPercentChange?: InputMaybe; + totalPercentChange_gt?: InputMaybe; + totalPercentChange_gte?: InputMaybe; + totalPercentChange_in?: InputMaybe>; + totalPercentChange_lt?: InputMaybe; + totalPercentChange_lte?: InputMaybe; + totalPercentChange_not?: InputMaybe; + totalPercentChange_not_in?: InputMaybe>; + totalUsdChange?: InputMaybe; + totalUsdChange_gt?: InputMaybe; + totalUsdChange_gte?: InputMaybe; + totalUsdChange_in?: InputMaybe>; + totalUsdChange_lt?: InputMaybe; + totalUsdChange_lte?: InputMaybe; + totalUsdChange_not?: InputMaybe; + totalUsdChange_not_in?: InputMaybe>; + usdChange?: InputMaybe>; + usdChange_contains?: InputMaybe>; + usdChange_contains_nocase?: InputMaybe>; + usdChange_not?: InputMaybe>; + usdChange_not_contains?: InputMaybe>; + usdChange_not_contains_nocase?: InputMaybe>; + valid?: InputMaybe; + valid_in?: InputMaybe>; + valid_not?: InputMaybe; + valid_not_in?: InputMaybe>; +}; + +export enum MarketPerformanceSeasonal_OrderBy { + CumulativePercentChange = 'cumulativePercentChange', + CumulativeTotalPercentChange = 'cumulativeTotalPercentChange', + CumulativeTotalUsdChange = 'cumulativeTotalUsdChange', + CumulativeUsdChange = 'cumulativeUsdChange', + Id = 'id', + PercentChange = 'percentChange', + PrevSeasonTokenBalances = 'prevSeasonTokenBalances', + PrevSeasonTokenUsdPrices = 'prevSeasonTokenUsdPrices', + PrevSeasonTokenUsdValues = 'prevSeasonTokenUsdValues', + PrevSeasonTotalUsd = 'prevSeasonTotalUsd', + Season = 'season', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + ThisSeasonTokenUsdPrices = 'thisSeasonTokenUsdPrices', + ThisSeasonTokenUsdValues = 'thisSeasonTokenUsdValues', + ThisSeasonTotalUsd = 'thisSeasonTotalUsd', + Timestamp = 'timestamp', + TotalPercentChange = 'totalPercentChange', + TotalUsdChange = 'totalUsdChange', + UsdChange = 'usdChange', + Valid = 'valid' +} + +export enum MarketStatus { + Active = 'ACTIVE', + Cancelled = 'CANCELLED', + CancelledPartial = 'CANCELLED_PARTIAL', + Expired = 'EXPIRED', + Filled = 'FILLED', + FilledPartial = 'FILLED_PARTIAL' +} + +export type MarketplaceEvent = { + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** { Event type }-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; +}; + +export type MarketplaceEvent_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; +}; + +export enum MarketplaceEvent_OrderBy { + BlockNumber = 'blockNumber', + CreatedAt = 'createdAt', + Hash = 'hash', + Id = 'id', + LogIndex = 'logIndex' +} + +/** Defines the order direction, either ascending or descending */ +export enum OrderDirection { + Asc = 'asc', + Desc = 'desc' +} + +export type Plot = { + __typename?: 'Plot'; + /** Number of beans spent for each pod, whether through sowing or on the marketplace */ + beansPerPod: Scalars['BigInt']['output']; + /** Timestamp of entity creation (not sown) */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash of when this plot entity was created (not sown) */ + creationHash: Scalars['Bytes']['output']; + /** Farmer who owns this plot */ + farmer: Farmer; + /** Field to which this plot belongs */ + field: Field; + /** Flag for if plot is fully harvested */ + fullyHarvested: Scalars['Boolean']['output']; + /** Timestamp of plot harvest, if it has harvested */ + harvestAt?: Maybe; + /** Transaction hash of plot harvest */ + harvestHash?: Maybe; + /** Number of pods harvestable */ + harvestablePods: Scalars['BigInt']['output']; + /** Number of pods harvested */ + harvestedPods: Scalars['BigInt']['output']; + /** Plot index */ + id: Scalars['ID']['output']; + /** Plot Index */ + index: Scalars['BigInt']['output']; + /** The harvestable index at the time the plot was sown or exchanged on the marketplace */ + initialHarvestableIndex: Scalars['BigInt']['output']; + /** Associated plot listing */ + listing?: Maybe; + /** Total pods in plot */ + pods: Scalars['BigInt']['output']; + /** If `source === 'TRANSFER'`: Farmer who acquired this plot in the Field or Market, and spent `beansPerPod` for each pod in the plot. */ + preTransferOwner?: Maybe; + /** If `source === 'TRANSFER'`: Source SOW/MARKET of the farmer who acquired the plot. Cannot be TRANSFER. */ + preTransferSource?: Maybe; + /** Season on entity creation (not sown) */ + season: Scalars['Int']['output']; + /** Source for this plot */ + source: PlotSource; + /** Transaction hash corresponding to when source was set. Not the same as creationHash which can include plots splitting from transfer or harvest without the owner changing */ + sourceHash: Scalars['Bytes']['output']; + /** Transaction hash of initial sowing */ + sowHash: Scalars['Bytes']['output']; + /** Same as season, but only for the initial sowing */ + sowSeason: Scalars['Int']['output']; + /** Timestamp of initial sowing */ + sowTimestamp: Scalars['BigInt']['output']; + /** Same as beansPerPod, but only for the initial sowing */ + sownBeansPerPod: Scalars['BigInt']['output']; + /** Same as initialHarvestableIndex, but only for the initial sowing */ + sownInitialHarvestableIndex: Scalars['BigInt']['output']; + /** Timestamp when updated */ + updatedAt: Scalars['BigInt']['output']; + /** Block when updated */ + updatedAtBlock: Scalars['BigInt']['output']; +}; + +export enum PlotSource { + ContractReceiverMigrated = 'CONTRACT_RECEIVER_MIGRATED', + Market = 'MARKET', + ReseedMigrated = 'RESEED_MIGRATED', + Sow = 'SOW', + Transfer = 'TRANSFER' +} + +export type Plot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beansPerPod?: InputMaybe; + beansPerPod_gt?: InputMaybe; + beansPerPod_gte?: InputMaybe; + beansPerPod_in?: InputMaybe>; + beansPerPod_lt?: InputMaybe; + beansPerPod_lte?: InputMaybe; + beansPerPod_not?: InputMaybe; + beansPerPod_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + creationHash?: InputMaybe; + creationHash_contains?: InputMaybe; + creationHash_gt?: InputMaybe; + creationHash_gte?: InputMaybe; + creationHash_in?: InputMaybe>; + creationHash_lt?: InputMaybe; + creationHash_lte?: InputMaybe; + creationHash_not?: InputMaybe; + creationHash_not_contains?: InputMaybe; + creationHash_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + field?: InputMaybe; + field_?: InputMaybe; + field_contains?: InputMaybe; + field_contains_nocase?: InputMaybe; + field_ends_with?: InputMaybe; + field_ends_with_nocase?: InputMaybe; + field_gt?: InputMaybe; + field_gte?: InputMaybe; + field_in?: InputMaybe>; + field_lt?: InputMaybe; + field_lte?: InputMaybe; + field_not?: InputMaybe; + field_not_contains?: InputMaybe; + field_not_contains_nocase?: InputMaybe; + field_not_ends_with?: InputMaybe; + field_not_ends_with_nocase?: InputMaybe; + field_not_in?: InputMaybe>; + field_not_starts_with?: InputMaybe; + field_not_starts_with_nocase?: InputMaybe; + field_starts_with?: InputMaybe; + field_starts_with_nocase?: InputMaybe; + fullyHarvested?: InputMaybe; + fullyHarvested_in?: InputMaybe>; + fullyHarvested_not?: InputMaybe; + fullyHarvested_not_in?: InputMaybe>; + harvestAt?: InputMaybe; + harvestAt_gt?: InputMaybe; + harvestAt_gte?: InputMaybe; + harvestAt_in?: InputMaybe>; + harvestAt_lt?: InputMaybe; + harvestAt_lte?: InputMaybe; + harvestAt_not?: InputMaybe; + harvestAt_not_in?: InputMaybe>; + harvestHash?: InputMaybe; + harvestHash_contains?: InputMaybe; + harvestHash_gt?: InputMaybe; + harvestHash_gte?: InputMaybe; + harvestHash_in?: InputMaybe>; + harvestHash_lt?: InputMaybe; + harvestHash_lte?: InputMaybe; + harvestHash_not?: InputMaybe; + harvestHash_not_contains?: InputMaybe; + harvestHash_not_in?: InputMaybe>; + harvestablePods?: InputMaybe; + harvestablePods_gt?: InputMaybe; + harvestablePods_gte?: InputMaybe; + harvestablePods_in?: InputMaybe>; + harvestablePods_lt?: InputMaybe; + harvestablePods_lte?: InputMaybe; + harvestablePods_not?: InputMaybe; + harvestablePods_not_in?: InputMaybe>; + harvestedPods?: InputMaybe; + harvestedPods_gt?: InputMaybe; + harvestedPods_gte?: InputMaybe; + harvestedPods_in?: InputMaybe>; + harvestedPods_lt?: InputMaybe; + harvestedPods_lte?: InputMaybe; + harvestedPods_not?: InputMaybe; + harvestedPods_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + initialHarvestableIndex?: InputMaybe; + initialHarvestableIndex_gt?: InputMaybe; + initialHarvestableIndex_gte?: InputMaybe; + initialHarvestableIndex_in?: InputMaybe>; + initialHarvestableIndex_lt?: InputMaybe; + initialHarvestableIndex_lte?: InputMaybe; + initialHarvestableIndex_not?: InputMaybe; + initialHarvestableIndex_not_in?: InputMaybe>; + listing?: InputMaybe; + listing_?: InputMaybe; + listing_contains?: InputMaybe; + listing_contains_nocase?: InputMaybe; + listing_ends_with?: InputMaybe; + listing_ends_with_nocase?: InputMaybe; + listing_gt?: InputMaybe; + listing_gte?: InputMaybe; + listing_in?: InputMaybe>; + listing_lt?: InputMaybe; + listing_lte?: InputMaybe; + listing_not?: InputMaybe; + listing_not_contains?: InputMaybe; + listing_not_contains_nocase?: InputMaybe; + listing_not_ends_with?: InputMaybe; + listing_not_ends_with_nocase?: InputMaybe; + listing_not_in?: InputMaybe>; + listing_not_starts_with?: InputMaybe; + listing_not_starts_with_nocase?: InputMaybe; + listing_starts_with?: InputMaybe; + listing_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + pods?: InputMaybe; + pods_gt?: InputMaybe; + pods_gte?: InputMaybe; + pods_in?: InputMaybe>; + pods_lt?: InputMaybe; + pods_lte?: InputMaybe; + pods_not?: InputMaybe; + pods_not_in?: InputMaybe>; + preTransferOwner?: InputMaybe; + preTransferOwner_?: InputMaybe; + preTransferOwner_contains?: InputMaybe; + preTransferOwner_contains_nocase?: InputMaybe; + preTransferOwner_ends_with?: InputMaybe; + preTransferOwner_ends_with_nocase?: InputMaybe; + preTransferOwner_gt?: InputMaybe; + preTransferOwner_gte?: InputMaybe; + preTransferOwner_in?: InputMaybe>; + preTransferOwner_lt?: InputMaybe; + preTransferOwner_lte?: InputMaybe; + preTransferOwner_not?: InputMaybe; + preTransferOwner_not_contains?: InputMaybe; + preTransferOwner_not_contains_nocase?: InputMaybe; + preTransferOwner_not_ends_with?: InputMaybe; + preTransferOwner_not_ends_with_nocase?: InputMaybe; + preTransferOwner_not_in?: InputMaybe>; + preTransferOwner_not_starts_with?: InputMaybe; + preTransferOwner_not_starts_with_nocase?: InputMaybe; + preTransferOwner_starts_with?: InputMaybe; + preTransferOwner_starts_with_nocase?: InputMaybe; + preTransferSource?: InputMaybe; + preTransferSource_in?: InputMaybe>; + preTransferSource_not?: InputMaybe; + preTransferSource_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + source?: InputMaybe; + sourceHash?: InputMaybe; + sourceHash_contains?: InputMaybe; + sourceHash_gt?: InputMaybe; + sourceHash_gte?: InputMaybe; + sourceHash_in?: InputMaybe>; + sourceHash_lt?: InputMaybe; + sourceHash_lte?: InputMaybe; + sourceHash_not?: InputMaybe; + sourceHash_not_contains?: InputMaybe; + sourceHash_not_in?: InputMaybe>; + source_in?: InputMaybe>; + source_not?: InputMaybe; + source_not_in?: InputMaybe>; + sowHash?: InputMaybe; + sowHash_contains?: InputMaybe; + sowHash_gt?: InputMaybe; + sowHash_gte?: InputMaybe; + sowHash_in?: InputMaybe>; + sowHash_lt?: InputMaybe; + sowHash_lte?: InputMaybe; + sowHash_not?: InputMaybe; + sowHash_not_contains?: InputMaybe; + sowHash_not_in?: InputMaybe>; + sowSeason?: InputMaybe; + sowSeason_gt?: InputMaybe; + sowSeason_gte?: InputMaybe; + sowSeason_in?: InputMaybe>; + sowSeason_lt?: InputMaybe; + sowSeason_lte?: InputMaybe; + sowSeason_not?: InputMaybe; + sowSeason_not_in?: InputMaybe>; + sowTimestamp?: InputMaybe; + sowTimestamp_gt?: InputMaybe; + sowTimestamp_gte?: InputMaybe; + sowTimestamp_in?: InputMaybe>; + sowTimestamp_lt?: InputMaybe; + sowTimestamp_lte?: InputMaybe; + sowTimestamp_not?: InputMaybe; + sowTimestamp_not_in?: InputMaybe>; + sownBeansPerPod?: InputMaybe; + sownBeansPerPod_gt?: InputMaybe; + sownBeansPerPod_gte?: InputMaybe; + sownBeansPerPod_in?: InputMaybe>; + sownBeansPerPod_lt?: InputMaybe; + sownBeansPerPod_lte?: InputMaybe; + sownBeansPerPod_not?: InputMaybe; + sownBeansPerPod_not_in?: InputMaybe>; + sownInitialHarvestableIndex?: InputMaybe; + sownInitialHarvestableIndex_gt?: InputMaybe; + sownInitialHarvestableIndex_gte?: InputMaybe; + sownInitialHarvestableIndex_in?: InputMaybe>; + sownInitialHarvestableIndex_lt?: InputMaybe; + sownInitialHarvestableIndex_lte?: InputMaybe; + sownInitialHarvestableIndex_not?: InputMaybe; + sownInitialHarvestableIndex_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAtBlock?: InputMaybe; + updatedAtBlock_gt?: InputMaybe; + updatedAtBlock_gte?: InputMaybe; + updatedAtBlock_in?: InputMaybe>; + updatedAtBlock_lt?: InputMaybe; + updatedAtBlock_lte?: InputMaybe; + updatedAtBlock_not?: InputMaybe; + updatedAtBlock_not_in?: InputMaybe>; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum Plot_OrderBy { + BeansPerPod = 'beansPerPod', + CreatedAt = 'createdAt', + CreationHash = 'creationHash', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Field = 'field', + FieldCultivationFactor = 'field__cultivationFactor', + FieldCultivationTemperature = 'field__cultivationTemperature', + FieldHarvestableIndex = 'field__harvestableIndex', + FieldHarvestablePods = 'field__harvestablePods', + FieldHarvestedPods = 'field__harvestedPods', + FieldId = 'field__id', + FieldLastDailySnapshotDay = 'field__lastDailySnapshotDay', + FieldLastHourlySnapshotSeason = 'field__lastHourlySnapshotSeason', + FieldNumberOfSowers = 'field__numberOfSowers', + FieldNumberOfSows = 'field__numberOfSows', + FieldPodIndex = 'field__podIndex', + FieldPodRate = 'field__podRate', + FieldRealRateOfReturn = 'field__realRateOfReturn', + FieldSeason = 'field__season', + FieldSoil = 'field__soil', + FieldSownBeans = 'field__sownBeans', + FieldTemperature = 'field__temperature', + FieldUnharvestablePods = 'field__unharvestablePods', + FieldUnmigratedL1Pods = 'field__unmigratedL1Pods', + FullyHarvested = 'fullyHarvested', + HarvestAt = 'harvestAt', + HarvestHash = 'harvestHash', + HarvestablePods = 'harvestablePods', + HarvestedPods = 'harvestedPods', + Id = 'id', + Index = 'index', + InitialHarvestableIndex = 'initialHarvestableIndex', + Listing = 'listing', + ListingAmount = 'listing__amount', + ListingCreatedAt = 'listing__createdAt', + ListingCreationHash = 'listing__creationHash', + ListingFilled = 'listing__filled', + ListingFilledAmount = 'listing__filledAmount', + ListingHistoryId = 'listing__historyID', + ListingId = 'listing__id', + ListingIndex = 'listing__index', + ListingMaxHarvestableIndex = 'listing__maxHarvestableIndex', + ListingMinFillAmount = 'listing__minFillAmount', + ListingMode = 'listing__mode', + ListingOriginalAmount = 'listing__originalAmount', + ListingOriginalIndex = 'listing__originalIndex', + ListingOriginalPlaceInLine = 'listing__originalPlaceInLine', + ListingPricePerPod = 'listing__pricePerPod', + ListingPricingFunction = 'listing__pricingFunction', + ListingPricingType = 'listing__pricingType', + ListingRemainingAmount = 'listing__remainingAmount', + ListingStart = 'listing__start', + ListingStatus = 'listing__status', + ListingUpdatedAt = 'listing__updatedAt', + Pods = 'pods', + PreTransferOwner = 'preTransferOwner', + PreTransferOwnerCreationBlock = 'preTransferOwner__creationBlock', + PreTransferOwnerId = 'preTransferOwner__id', + PreTransferSource = 'preTransferSource', + Season = 'season', + Source = 'source', + SourceHash = 'sourceHash', + SowHash = 'sowHash', + SowSeason = 'sowSeason', + SowTimestamp = 'sowTimestamp', + SownBeansPerPod = 'sownBeansPerPod', + SownInitialHarvestableIndex = 'sownInitialHarvestableIndex', + UpdatedAt = 'updatedAt', + UpdatedAtBlock = 'updatedAtBlock' +} + +export type PodFill = { + __typename?: 'PodFill'; + /** Number of pods filled */ + amount: Scalars['BigInt']['output']; + /** Total beans used to fill listing/order */ + costInBeans: Scalars['BigInt']['output']; + /** Creation timestamp */ + createdAt: Scalars['BigInt']['output']; + /** Account that is sending pods */ + fromFarmer: Farmer; + /** Beanstalk address - Order/Listing index - transaction hash */ + id: Scalars['ID']['output']; + /** Index of plot transferred */ + index: Scalars['BigInt']['output']; + /** Associated listing, if any */ + listing?: Maybe; + /** Associated order, if any */ + order?: Maybe; + /** Where these pods were in line when filled */ + placeInLine: Scalars['BigInt']['output']; + /** Marketplace associated with this fill */ + podMarketplace: PodMarketplace; + /** Start of plot transferred */ + start: Scalars['BigInt']['output']; + /** Account that is receiving pods */ + toFarmer: Farmer; +}; + +export type PodFill_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + costInBeans?: InputMaybe; + costInBeans_gt?: InputMaybe; + costInBeans_gte?: InputMaybe; + costInBeans_in?: InputMaybe>; + costInBeans_lt?: InputMaybe; + costInBeans_lte?: InputMaybe; + costInBeans_not?: InputMaybe; + costInBeans_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + fromFarmer?: InputMaybe; + fromFarmer_?: InputMaybe; + fromFarmer_contains?: InputMaybe; + fromFarmer_contains_nocase?: InputMaybe; + fromFarmer_ends_with?: InputMaybe; + fromFarmer_ends_with_nocase?: InputMaybe; + fromFarmer_gt?: InputMaybe; + fromFarmer_gte?: InputMaybe; + fromFarmer_in?: InputMaybe>; + fromFarmer_lt?: InputMaybe; + fromFarmer_lte?: InputMaybe; + fromFarmer_not?: InputMaybe; + fromFarmer_not_contains?: InputMaybe; + fromFarmer_not_contains_nocase?: InputMaybe; + fromFarmer_not_ends_with?: InputMaybe; + fromFarmer_not_ends_with_nocase?: InputMaybe; + fromFarmer_not_in?: InputMaybe>; + fromFarmer_not_starts_with?: InputMaybe; + fromFarmer_not_starts_with_nocase?: InputMaybe; + fromFarmer_starts_with?: InputMaybe; + fromFarmer_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + listing?: InputMaybe; + listing_?: InputMaybe; + listing_contains?: InputMaybe; + listing_contains_nocase?: InputMaybe; + listing_ends_with?: InputMaybe; + listing_ends_with_nocase?: InputMaybe; + listing_gt?: InputMaybe; + listing_gte?: InputMaybe; + listing_in?: InputMaybe>; + listing_lt?: InputMaybe; + listing_lte?: InputMaybe; + listing_not?: InputMaybe; + listing_not_contains?: InputMaybe; + listing_not_contains_nocase?: InputMaybe; + listing_not_ends_with?: InputMaybe; + listing_not_ends_with_nocase?: InputMaybe; + listing_not_in?: InputMaybe>; + listing_not_starts_with?: InputMaybe; + listing_not_starts_with_nocase?: InputMaybe; + listing_starts_with?: InputMaybe; + listing_starts_with_nocase?: InputMaybe; + or?: InputMaybe>>; + order?: InputMaybe; + order_?: InputMaybe; + order_contains?: InputMaybe; + order_contains_nocase?: InputMaybe; + order_ends_with?: InputMaybe; + order_ends_with_nocase?: InputMaybe; + order_gt?: InputMaybe; + order_gte?: InputMaybe; + order_in?: InputMaybe>; + order_lt?: InputMaybe; + order_lte?: InputMaybe; + order_not?: InputMaybe; + order_not_contains?: InputMaybe; + order_not_contains_nocase?: InputMaybe; + order_not_ends_with?: InputMaybe; + order_not_ends_with_nocase?: InputMaybe; + order_not_in?: InputMaybe>; + order_not_starts_with?: InputMaybe; + order_not_starts_with_nocase?: InputMaybe; + order_starts_with?: InputMaybe; + order_starts_with_nocase?: InputMaybe; + placeInLine?: InputMaybe; + placeInLine_gt?: InputMaybe; + placeInLine_gte?: InputMaybe; + placeInLine_in?: InputMaybe>; + placeInLine_lt?: InputMaybe; + placeInLine_lte?: InputMaybe; + placeInLine_not?: InputMaybe; + placeInLine_not_in?: InputMaybe>; + podMarketplace?: InputMaybe; + podMarketplace_?: InputMaybe; + podMarketplace_contains?: InputMaybe; + podMarketplace_contains_nocase?: InputMaybe; + podMarketplace_ends_with?: InputMaybe; + podMarketplace_ends_with_nocase?: InputMaybe; + podMarketplace_gt?: InputMaybe; + podMarketplace_gte?: InputMaybe; + podMarketplace_in?: InputMaybe>; + podMarketplace_lt?: InputMaybe; + podMarketplace_lte?: InputMaybe; + podMarketplace_not?: InputMaybe; + podMarketplace_not_contains?: InputMaybe; + podMarketplace_not_contains_nocase?: InputMaybe; + podMarketplace_not_ends_with?: InputMaybe; + podMarketplace_not_ends_with_nocase?: InputMaybe; + podMarketplace_not_in?: InputMaybe>; + podMarketplace_not_starts_with?: InputMaybe; + podMarketplace_not_starts_with_nocase?: InputMaybe; + podMarketplace_starts_with?: InputMaybe; + podMarketplace_starts_with_nocase?: InputMaybe; + start?: InputMaybe; + start_gt?: InputMaybe; + start_gte?: InputMaybe; + start_in?: InputMaybe>; + start_lt?: InputMaybe; + start_lte?: InputMaybe; + start_not?: InputMaybe; + start_not_in?: InputMaybe>; + toFarmer?: InputMaybe; + toFarmer_?: InputMaybe; + toFarmer_contains?: InputMaybe; + toFarmer_contains_nocase?: InputMaybe; + toFarmer_ends_with?: InputMaybe; + toFarmer_ends_with_nocase?: InputMaybe; + toFarmer_gt?: InputMaybe; + toFarmer_gte?: InputMaybe; + toFarmer_in?: InputMaybe>; + toFarmer_lt?: InputMaybe; + toFarmer_lte?: InputMaybe; + toFarmer_not?: InputMaybe; + toFarmer_not_contains?: InputMaybe; + toFarmer_not_contains_nocase?: InputMaybe; + toFarmer_not_ends_with?: InputMaybe; + toFarmer_not_ends_with_nocase?: InputMaybe; + toFarmer_not_in?: InputMaybe>; + toFarmer_not_starts_with?: InputMaybe; + toFarmer_not_starts_with_nocase?: InputMaybe; + toFarmer_starts_with?: InputMaybe; + toFarmer_starts_with_nocase?: InputMaybe; +}; + +export enum PodFill_OrderBy { + Amount = 'amount', + CostInBeans = 'costInBeans', + CreatedAt = 'createdAt', + FromFarmer = 'fromFarmer', + FromFarmerCreationBlock = 'fromFarmer__creationBlock', + FromFarmerId = 'fromFarmer__id', + Id = 'id', + Index = 'index', + Listing = 'listing', + ListingAmount = 'listing__amount', + ListingCreatedAt = 'listing__createdAt', + ListingCreationHash = 'listing__creationHash', + ListingFilled = 'listing__filled', + ListingFilledAmount = 'listing__filledAmount', + ListingHistoryId = 'listing__historyID', + ListingId = 'listing__id', + ListingIndex = 'listing__index', + ListingMaxHarvestableIndex = 'listing__maxHarvestableIndex', + ListingMinFillAmount = 'listing__minFillAmount', + ListingMode = 'listing__mode', + ListingOriginalAmount = 'listing__originalAmount', + ListingOriginalIndex = 'listing__originalIndex', + ListingOriginalPlaceInLine = 'listing__originalPlaceInLine', + ListingPricePerPod = 'listing__pricePerPod', + ListingPricingFunction = 'listing__pricingFunction', + ListingPricingType = 'listing__pricingType', + ListingRemainingAmount = 'listing__remainingAmount', + ListingStart = 'listing__start', + ListingStatus = 'listing__status', + ListingUpdatedAt = 'listing__updatedAt', + Order = 'order', + OrderBeanAmount = 'order__beanAmount', + OrderBeanAmountFilled = 'order__beanAmountFilled', + OrderCreatedAt = 'order__createdAt', + OrderCreationHash = 'order__creationHash', + OrderHistoryId = 'order__historyID', + OrderId = 'order__id', + OrderMaxPlaceInLine = 'order__maxPlaceInLine', + OrderMinFillAmount = 'order__minFillAmount', + OrderPodAmountFilled = 'order__podAmountFilled', + OrderPricePerPod = 'order__pricePerPod', + OrderPricingFunction = 'order__pricingFunction', + OrderPricingType = 'order__pricingType', + OrderStatus = 'order__status', + OrderUpdatedAt = 'order__updatedAt', + PlaceInLine = 'placeInLine', + PodMarketplace = 'podMarketplace', + PodMarketplaceAvailableListedPods = 'podMarketplace__availableListedPods', + PodMarketplaceAvailableOrderBeans = 'podMarketplace__availableOrderBeans', + PodMarketplaceBeanVolume = 'podMarketplace__beanVolume', + PodMarketplaceCancelledListedPods = 'podMarketplace__cancelledListedPods', + PodMarketplaceCancelledOrderBeans = 'podMarketplace__cancelledOrderBeans', + PodMarketplaceExpiredListedPods = 'podMarketplace__expiredListedPods', + PodMarketplaceFilledListedPods = 'podMarketplace__filledListedPods', + PodMarketplaceFilledOrderBeans = 'podMarketplace__filledOrderBeans', + PodMarketplaceFilledOrderedPods = 'podMarketplace__filledOrderedPods', + PodMarketplaceId = 'podMarketplace__id', + PodMarketplaceLastDailySnapshotDay = 'podMarketplace__lastDailySnapshotDay', + PodMarketplaceLastHourlySnapshotSeason = 'podMarketplace__lastHourlySnapshotSeason', + PodMarketplaceListedPods = 'podMarketplace__listedPods', + PodMarketplaceOrderBeans = 'podMarketplace__orderBeans', + PodMarketplacePodVolume = 'podMarketplace__podVolume', + PodMarketplaceSeason = 'podMarketplace__season', + Start = 'start', + ToFarmer = 'toFarmer', + ToFarmerCreationBlock = 'toFarmer__creationBlock', + ToFarmerId = 'toFarmer__id' +} + +export type PodListing = { + __typename?: 'PodListing'; + /** + * The maximum amount of Pods remaining to be sold by *this* PodListing. + * + * When this PodListing is Filled or Cancelled, `amount` does NOT change. + * + */ + amount: Scalars['BigInt']['output']; + /** Timestamp of PodListing creation. */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash when this PodListing entity was created. */ + creationHash: Scalars['Bytes']['output']; + /** The Farmer that created the PodListing. */ + farmer: Farmer; + /** Any Fills associated with this PodListing. */ + fill?: Maybe; + /** + * The amount of Pods Filled since the initial PodListing was Created. + * + * `0 <= filled <= originalAmount` + * + */ + filled: Scalars['BigInt']['output']; + /** + * The number of Pods purchased from *this* PodListing. + * + * If not yet Filled or the PodListing is CANCELLED: `filledAmount = 0` + * + */ + filledAmount: Scalars['BigInt']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** + * The PodListing ID is a unique subgraph ID: `{account}-{index}" + * + * The on-chain identifier for a PodListing is the `index`. + * + */ + id: Scalars['ID']['output']; + /** + * The absolute index of the listed Plot in the Pod Line. + * + * Measured from the front, so the Listing contains all Pods between + * (index) and (index + totalAmount). + * + * An example where the podLine is 50,000 but the index is 150,000: + * 0 the first Pod issued + * 100,000 harvestableIndex + * 150,000 index + * + */ + index: Scalars['BigInt']['output']; + /** + * When the `harvestableIndex` reaches this number, the Listing becomes EXPIRED. + * + */ + maxHarvestableIndex: Scalars['BigInt']['output']; + /** Minimum number of Beans required to perform a Fill. */ + minFillAmount: Scalars['BigInt']['output']; + /** Where Beans are sent when the PodListing is Filled. See `FarmToMode`. */ + mode: Scalars['Int']['output']; + /** + * The total number of Pods listed during the first emission of PodListingCreated. + * + */ + originalAmount: Scalars['BigInt']['output']; + /** + * The original index from the first emission of PodListingCreated in a chain. + * + * If `originalIndex !== index`, then this PodListing was created when a parent + * PodListing was partially filled. + * + */ + originalIndex: Scalars['BigInt']['output']; + /** The place of this plot in the pod line at the time it was listed */ + originalPlaceInLine: Scalars['BigInt']['output']; + /** Plot being Listed. */ + plot: Plot; + /** Marketplace used for listing */ + podMarketplace: PodMarketplace; + /** + * [V1] The FIXED price per Pod denominated in Beans. + * + * Ex. `pricePerPod = 10000` indicates a price of 0.01 Beans per Pod. + * + * If `pricingType = 1`, this field is set to `0` and should be ignored. + * + */ + pricePerPod: Scalars['Int']['output']; + /** + * [V2] The FIXED or DYNAMIC pricing function, encoded as bytes. + * + * This must be decoded client-side, see `LibPolynomial.sol` for more info. + * + */ + pricingFunction?: Maybe; + /** + * The Pricing Type states whether this PodListing uses FIXED or DYNAMIC pricing. + * + * null = V1 FIXED = use `pricePerPod` + * 0 = V2 FIXED = use `pricePerPod` + * 1 = V2 DYNAMIC = use `pricingFunction` + * + */ + pricingType?: Maybe; + /** + * The number of Pods remaining in *this* PodListing. + * + * When a Fill occurs, `remainingAmount` is decremented on this PodListing. A new + * PodListing is created with an updated `index` and `amount` equal to this + * PodListing's remainingAmount. + * + * If this PodListing has NOT been Filled: `remainingAmount = amount` + * If this PodListing has been Filled: `remainingAmount < amount` + * If this PodListing has been Cancelled: `remainingAmount = 0` + * + */ + remainingAmount: Scalars['BigInt']['output']; + /** + * The position within the Plot from which to sell Pods. + * + * 0 <= `start` <= (plot size - `amount`) + * + */ + start: Scalars['BigInt']['output']; + /** Current market status of listing */ + status: MarketStatus; + /** Timestamp of last update to this PodListing, including Fills and Cancellations. */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type PodListingCancelled = MarketplaceEvent & { + __typename?: 'PodListingCancelled'; + /** Account cancelling listing */ + account: Scalars['Bytes']['output']; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** seedChange-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Index of plot listing being cancelled */ + index: Scalars['BigInt']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; + /** Where these pods were in line when cancelled */ + placeInLine: Scalars['BigInt']['output']; +}; + +export type PodListingCancelled_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + account?: InputMaybe; + account_contains?: InputMaybe; + account_gt?: InputMaybe; + account_gte?: InputMaybe; + account_in?: InputMaybe>; + account_lt?: InputMaybe; + account_lte?: InputMaybe; + account_not?: InputMaybe; + account_not_contains?: InputMaybe; + account_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; + placeInLine?: InputMaybe; + placeInLine_gt?: InputMaybe; + placeInLine_gte?: InputMaybe; + placeInLine_in?: InputMaybe>; + placeInLine_lt?: InputMaybe; + placeInLine_lte?: InputMaybe; + placeInLine_not?: InputMaybe; + placeInLine_not_in?: InputMaybe>; +}; + +export enum PodListingCancelled_OrderBy { + Account = 'account', + BlockNumber = 'blockNumber', + CreatedAt = 'createdAt', + Hash = 'hash', + HistoryId = 'historyID', + Id = 'id', + Index = 'index', + LogIndex = 'logIndex', + PlaceInLine = 'placeInLine' +} + +export type PodListingCreated = MarketplaceEvent & { + __typename?: 'PodListingCreated'; + /** Account creating the listing */ + account: Scalars['Bytes']['output']; + /** Amount of pods listed */ + amount: Scalars['BigInt']['output']; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** podListingCreated-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Index of the plot listed */ + index: Scalars['BigInt']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; + /** Max index for listing */ + maxHarvestableIndex: Scalars['BigInt']['output']; + /** Minimum fill amount */ + minFillAmount: Scalars['BigInt']['output']; + /** Claim to location */ + mode: Scalars['Int']['output']; + /** Where these pods were in line when listed */ + placeInLine: Scalars['BigInt']['output']; + /** Price per pod */ + pricePerPod: Scalars['Int']['output']; + /** Pricing Function Data */ + pricingFunction?: Maybe; + /** Pricing Type */ + pricingType?: Maybe; + /** Start value of the plot listed */ + start: Scalars['BigInt']['output']; +}; + +export type PodListingCreated_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + account?: InputMaybe; + account_contains?: InputMaybe; + account_gt?: InputMaybe; + account_gte?: InputMaybe; + account_in?: InputMaybe>; + account_lt?: InputMaybe; + account_lte?: InputMaybe; + account_not?: InputMaybe; + account_not_contains?: InputMaybe; + account_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + maxHarvestableIndex?: InputMaybe; + maxHarvestableIndex_gt?: InputMaybe; + maxHarvestableIndex_gte?: InputMaybe; + maxHarvestableIndex_in?: InputMaybe>; + maxHarvestableIndex_lt?: InputMaybe; + maxHarvestableIndex_lte?: InputMaybe; + maxHarvestableIndex_not?: InputMaybe; + maxHarvestableIndex_not_in?: InputMaybe>; + minFillAmount?: InputMaybe; + minFillAmount_gt?: InputMaybe; + minFillAmount_gte?: InputMaybe; + minFillAmount_in?: InputMaybe>; + minFillAmount_lt?: InputMaybe; + minFillAmount_lte?: InputMaybe; + minFillAmount_not?: InputMaybe; + minFillAmount_not_in?: InputMaybe>; + mode?: InputMaybe; + mode_gt?: InputMaybe; + mode_gte?: InputMaybe; + mode_in?: InputMaybe>; + mode_lt?: InputMaybe; + mode_lte?: InputMaybe; + mode_not?: InputMaybe; + mode_not_in?: InputMaybe>; + or?: InputMaybe>>; + placeInLine?: InputMaybe; + placeInLine_gt?: InputMaybe; + placeInLine_gte?: InputMaybe; + placeInLine_in?: InputMaybe>; + placeInLine_lt?: InputMaybe; + placeInLine_lte?: InputMaybe; + placeInLine_not?: InputMaybe; + placeInLine_not_in?: InputMaybe>; + pricePerPod?: InputMaybe; + pricePerPod_gt?: InputMaybe; + pricePerPod_gte?: InputMaybe; + pricePerPod_in?: InputMaybe>; + pricePerPod_lt?: InputMaybe; + pricePerPod_lte?: InputMaybe; + pricePerPod_not?: InputMaybe; + pricePerPod_not_in?: InputMaybe>; + pricingFunction?: InputMaybe; + pricingFunction_contains?: InputMaybe; + pricingFunction_gt?: InputMaybe; + pricingFunction_gte?: InputMaybe; + pricingFunction_in?: InputMaybe>; + pricingFunction_lt?: InputMaybe; + pricingFunction_lte?: InputMaybe; + pricingFunction_not?: InputMaybe; + pricingFunction_not_contains?: InputMaybe; + pricingFunction_not_in?: InputMaybe>; + pricingType?: InputMaybe; + pricingType_gt?: InputMaybe; + pricingType_gte?: InputMaybe; + pricingType_in?: InputMaybe>; + pricingType_lt?: InputMaybe; + pricingType_lte?: InputMaybe; + pricingType_not?: InputMaybe; + pricingType_not_in?: InputMaybe>; + start?: InputMaybe; + start_gt?: InputMaybe; + start_gte?: InputMaybe; + start_in?: InputMaybe>; + start_lt?: InputMaybe; + start_lte?: InputMaybe; + start_not?: InputMaybe; + start_not_in?: InputMaybe>; +}; + +export enum PodListingCreated_OrderBy { + Account = 'account', + Amount = 'amount', + BlockNumber = 'blockNumber', + CreatedAt = 'createdAt', + Hash = 'hash', + HistoryId = 'historyID', + Id = 'id', + Index = 'index', + LogIndex = 'logIndex', + MaxHarvestableIndex = 'maxHarvestableIndex', + MinFillAmount = 'minFillAmount', + Mode = 'mode', + PlaceInLine = 'placeInLine', + PricePerPod = 'pricePerPod', + PricingFunction = 'pricingFunction', + PricingType = 'pricingType', + Start = 'start' +} + +export type PodListingFilled = MarketplaceEvent & { + __typename?: 'PodListingFilled'; + /** Number of pods transferred */ + amount: Scalars['BigInt']['output']; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Beans paid to fill the listing */ + costInBeans?: Maybe; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Account selling pods */ + fromFarmer: Scalars['Bytes']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** podListingFilled-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Index of the plot transferred */ + index: Scalars['BigInt']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; + /** Where these pods were in line when filled */ + placeInLine: Scalars['BigInt']['output']; + /** Start of the plot transferred */ + start: Scalars['BigInt']['output']; + /** Account buying pods */ + toFarmer: Scalars['Bytes']['output']; +}; + +export type PodListingFilled_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + costInBeans?: InputMaybe; + costInBeans_gt?: InputMaybe; + costInBeans_gte?: InputMaybe; + costInBeans_in?: InputMaybe>; + costInBeans_lt?: InputMaybe; + costInBeans_lte?: InputMaybe; + costInBeans_not?: InputMaybe; + costInBeans_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + fromFarmer?: InputMaybe; + fromFarmer_contains?: InputMaybe; + fromFarmer_gt?: InputMaybe; + fromFarmer_gte?: InputMaybe; + fromFarmer_in?: InputMaybe>; + fromFarmer_lt?: InputMaybe; + fromFarmer_lte?: InputMaybe; + fromFarmer_not?: InputMaybe; + fromFarmer_not_contains?: InputMaybe; + fromFarmer_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; + placeInLine?: InputMaybe; + placeInLine_gt?: InputMaybe; + placeInLine_gte?: InputMaybe; + placeInLine_in?: InputMaybe>; + placeInLine_lt?: InputMaybe; + placeInLine_lte?: InputMaybe; + placeInLine_not?: InputMaybe; + placeInLine_not_in?: InputMaybe>; + start?: InputMaybe; + start_gt?: InputMaybe; + start_gte?: InputMaybe; + start_in?: InputMaybe>; + start_lt?: InputMaybe; + start_lte?: InputMaybe; + start_not?: InputMaybe; + start_not_in?: InputMaybe>; + toFarmer?: InputMaybe; + toFarmer_contains?: InputMaybe; + toFarmer_gt?: InputMaybe; + toFarmer_gte?: InputMaybe; + toFarmer_in?: InputMaybe>; + toFarmer_lt?: InputMaybe; + toFarmer_lte?: InputMaybe; + toFarmer_not?: InputMaybe; + toFarmer_not_contains?: InputMaybe; + toFarmer_not_in?: InputMaybe>; +}; + +export enum PodListingFilled_OrderBy { + Amount = 'amount', + BlockNumber = 'blockNumber', + CostInBeans = 'costInBeans', + CreatedAt = 'createdAt', + FromFarmer = 'fromFarmer', + Hash = 'hash', + HistoryId = 'historyID', + Id = 'id', + Index = 'index', + LogIndex = 'logIndex', + PlaceInLine = 'placeInLine', + Start = 'start', + ToFarmer = 'toFarmer' +} + +export type PodListing_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + creationHash?: InputMaybe; + creationHash_contains?: InputMaybe; + creationHash_gt?: InputMaybe; + creationHash_gte?: InputMaybe; + creationHash_in?: InputMaybe>; + creationHash_lt?: InputMaybe; + creationHash_lte?: InputMaybe; + creationHash_not?: InputMaybe; + creationHash_not_contains?: InputMaybe; + creationHash_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + fill?: InputMaybe; + fill_?: InputMaybe; + fill_contains?: InputMaybe; + fill_contains_nocase?: InputMaybe; + fill_ends_with?: InputMaybe; + fill_ends_with_nocase?: InputMaybe; + fill_gt?: InputMaybe; + fill_gte?: InputMaybe; + fill_in?: InputMaybe>; + fill_lt?: InputMaybe; + fill_lte?: InputMaybe; + fill_not?: InputMaybe; + fill_not_contains?: InputMaybe; + fill_not_contains_nocase?: InputMaybe; + fill_not_ends_with?: InputMaybe; + fill_not_ends_with_nocase?: InputMaybe; + fill_not_in?: InputMaybe>; + fill_not_starts_with?: InputMaybe; + fill_not_starts_with_nocase?: InputMaybe; + fill_starts_with?: InputMaybe; + fill_starts_with_nocase?: InputMaybe; + filled?: InputMaybe; + filledAmount?: InputMaybe; + filledAmount_gt?: InputMaybe; + filledAmount_gte?: InputMaybe; + filledAmount_in?: InputMaybe>; + filledAmount_lt?: InputMaybe; + filledAmount_lte?: InputMaybe; + filledAmount_not?: InputMaybe; + filledAmount_not_in?: InputMaybe>; + filled_gt?: InputMaybe; + filled_gte?: InputMaybe; + filled_in?: InputMaybe>; + filled_lt?: InputMaybe; + filled_lte?: InputMaybe; + filled_not?: InputMaybe; + filled_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + maxHarvestableIndex?: InputMaybe; + maxHarvestableIndex_gt?: InputMaybe; + maxHarvestableIndex_gte?: InputMaybe; + maxHarvestableIndex_in?: InputMaybe>; + maxHarvestableIndex_lt?: InputMaybe; + maxHarvestableIndex_lte?: InputMaybe; + maxHarvestableIndex_not?: InputMaybe; + maxHarvestableIndex_not_in?: InputMaybe>; + minFillAmount?: InputMaybe; + minFillAmount_gt?: InputMaybe; + minFillAmount_gte?: InputMaybe; + minFillAmount_in?: InputMaybe>; + minFillAmount_lt?: InputMaybe; + minFillAmount_lte?: InputMaybe; + minFillAmount_not?: InputMaybe; + minFillAmount_not_in?: InputMaybe>; + mode?: InputMaybe; + mode_gt?: InputMaybe; + mode_gte?: InputMaybe; + mode_in?: InputMaybe>; + mode_lt?: InputMaybe; + mode_lte?: InputMaybe; + mode_not?: InputMaybe; + mode_not_in?: InputMaybe>; + or?: InputMaybe>>; + originalAmount?: InputMaybe; + originalAmount_gt?: InputMaybe; + originalAmount_gte?: InputMaybe; + originalAmount_in?: InputMaybe>; + originalAmount_lt?: InputMaybe; + originalAmount_lte?: InputMaybe; + originalAmount_not?: InputMaybe; + originalAmount_not_in?: InputMaybe>; + originalIndex?: InputMaybe; + originalIndex_gt?: InputMaybe; + originalIndex_gte?: InputMaybe; + originalIndex_in?: InputMaybe>; + originalIndex_lt?: InputMaybe; + originalIndex_lte?: InputMaybe; + originalIndex_not?: InputMaybe; + originalIndex_not_in?: InputMaybe>; + originalPlaceInLine?: InputMaybe; + originalPlaceInLine_gt?: InputMaybe; + originalPlaceInLine_gte?: InputMaybe; + originalPlaceInLine_in?: InputMaybe>; + originalPlaceInLine_lt?: InputMaybe; + originalPlaceInLine_lte?: InputMaybe; + originalPlaceInLine_not?: InputMaybe; + originalPlaceInLine_not_in?: InputMaybe>; + plot?: InputMaybe; + plot_?: InputMaybe; + plot_contains?: InputMaybe; + plot_contains_nocase?: InputMaybe; + plot_ends_with?: InputMaybe; + plot_ends_with_nocase?: InputMaybe; + plot_gt?: InputMaybe; + plot_gte?: InputMaybe; + plot_in?: InputMaybe>; + plot_lt?: InputMaybe; + plot_lte?: InputMaybe; + plot_not?: InputMaybe; + plot_not_contains?: InputMaybe; + plot_not_contains_nocase?: InputMaybe; + plot_not_ends_with?: InputMaybe; + plot_not_ends_with_nocase?: InputMaybe; + plot_not_in?: InputMaybe>; + plot_not_starts_with?: InputMaybe; + plot_not_starts_with_nocase?: InputMaybe; + plot_starts_with?: InputMaybe; + plot_starts_with_nocase?: InputMaybe; + podMarketplace?: InputMaybe; + podMarketplace_?: InputMaybe; + podMarketplace_contains?: InputMaybe; + podMarketplace_contains_nocase?: InputMaybe; + podMarketplace_ends_with?: InputMaybe; + podMarketplace_ends_with_nocase?: InputMaybe; + podMarketplace_gt?: InputMaybe; + podMarketplace_gte?: InputMaybe; + podMarketplace_in?: InputMaybe>; + podMarketplace_lt?: InputMaybe; + podMarketplace_lte?: InputMaybe; + podMarketplace_not?: InputMaybe; + podMarketplace_not_contains?: InputMaybe; + podMarketplace_not_contains_nocase?: InputMaybe; + podMarketplace_not_ends_with?: InputMaybe; + podMarketplace_not_ends_with_nocase?: InputMaybe; + podMarketplace_not_in?: InputMaybe>; + podMarketplace_not_starts_with?: InputMaybe; + podMarketplace_not_starts_with_nocase?: InputMaybe; + podMarketplace_starts_with?: InputMaybe; + podMarketplace_starts_with_nocase?: InputMaybe; + pricePerPod?: InputMaybe; + pricePerPod_gt?: InputMaybe; + pricePerPod_gte?: InputMaybe; + pricePerPod_in?: InputMaybe>; + pricePerPod_lt?: InputMaybe; + pricePerPod_lte?: InputMaybe; + pricePerPod_not?: InputMaybe; + pricePerPod_not_in?: InputMaybe>; + pricingFunction?: InputMaybe; + pricingFunction_contains?: InputMaybe; + pricingFunction_gt?: InputMaybe; + pricingFunction_gte?: InputMaybe; + pricingFunction_in?: InputMaybe>; + pricingFunction_lt?: InputMaybe; + pricingFunction_lte?: InputMaybe; + pricingFunction_not?: InputMaybe; + pricingFunction_not_contains?: InputMaybe; + pricingFunction_not_in?: InputMaybe>; + pricingType?: InputMaybe; + pricingType_gt?: InputMaybe; + pricingType_gte?: InputMaybe; + pricingType_in?: InputMaybe>; + pricingType_lt?: InputMaybe; + pricingType_lte?: InputMaybe; + pricingType_not?: InputMaybe; + pricingType_not_in?: InputMaybe>; + remainingAmount?: InputMaybe; + remainingAmount_gt?: InputMaybe; + remainingAmount_gte?: InputMaybe; + remainingAmount_in?: InputMaybe>; + remainingAmount_lt?: InputMaybe; + remainingAmount_lte?: InputMaybe; + remainingAmount_not?: InputMaybe; + remainingAmount_not_in?: InputMaybe>; + start?: InputMaybe; + start_gt?: InputMaybe; + start_gte?: InputMaybe; + start_in?: InputMaybe>; + start_lt?: InputMaybe; + start_lte?: InputMaybe; + start_not?: InputMaybe; + start_not_in?: InputMaybe>; + status?: InputMaybe; + status_in?: InputMaybe>; + status_not?: InputMaybe; + status_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum PodListing_OrderBy { + Amount = 'amount', + CreatedAt = 'createdAt', + CreationHash = 'creationHash', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Fill = 'fill', + FillAmount = 'fill__amount', + FillCostInBeans = 'fill__costInBeans', + FillCreatedAt = 'fill__createdAt', + FillId = 'fill__id', + FillIndex = 'fill__index', + FillPlaceInLine = 'fill__placeInLine', + FillStart = 'fill__start', + Filled = 'filled', + FilledAmount = 'filledAmount', + HistoryId = 'historyID', + Id = 'id', + Index = 'index', + MaxHarvestableIndex = 'maxHarvestableIndex', + MinFillAmount = 'minFillAmount', + Mode = 'mode', + OriginalAmount = 'originalAmount', + OriginalIndex = 'originalIndex', + OriginalPlaceInLine = 'originalPlaceInLine', + Plot = 'plot', + PlotBeansPerPod = 'plot__beansPerPod', + PlotCreatedAt = 'plot__createdAt', + PlotCreationHash = 'plot__creationHash', + PlotFullyHarvested = 'plot__fullyHarvested', + PlotHarvestAt = 'plot__harvestAt', + PlotHarvestHash = 'plot__harvestHash', + PlotHarvestablePods = 'plot__harvestablePods', + PlotHarvestedPods = 'plot__harvestedPods', + PlotId = 'plot__id', + PlotIndex = 'plot__index', + PlotInitialHarvestableIndex = 'plot__initialHarvestableIndex', + PlotPods = 'plot__pods', + PlotPreTransferSource = 'plot__preTransferSource', + PlotSeason = 'plot__season', + PlotSource = 'plot__source', + PlotSourceHash = 'plot__sourceHash', + PlotSowHash = 'plot__sowHash', + PlotSowSeason = 'plot__sowSeason', + PlotSowTimestamp = 'plot__sowTimestamp', + PlotSownBeansPerPod = 'plot__sownBeansPerPod', + PlotSownInitialHarvestableIndex = 'plot__sownInitialHarvestableIndex', + PlotUpdatedAt = 'plot__updatedAt', + PlotUpdatedAtBlock = 'plot__updatedAtBlock', + PodMarketplace = 'podMarketplace', + PodMarketplaceAvailableListedPods = 'podMarketplace__availableListedPods', + PodMarketplaceAvailableOrderBeans = 'podMarketplace__availableOrderBeans', + PodMarketplaceBeanVolume = 'podMarketplace__beanVolume', + PodMarketplaceCancelledListedPods = 'podMarketplace__cancelledListedPods', + PodMarketplaceCancelledOrderBeans = 'podMarketplace__cancelledOrderBeans', + PodMarketplaceExpiredListedPods = 'podMarketplace__expiredListedPods', + PodMarketplaceFilledListedPods = 'podMarketplace__filledListedPods', + PodMarketplaceFilledOrderBeans = 'podMarketplace__filledOrderBeans', + PodMarketplaceFilledOrderedPods = 'podMarketplace__filledOrderedPods', + PodMarketplaceId = 'podMarketplace__id', + PodMarketplaceLastDailySnapshotDay = 'podMarketplace__lastDailySnapshotDay', + PodMarketplaceLastHourlySnapshotSeason = 'podMarketplace__lastHourlySnapshotSeason', + PodMarketplaceListedPods = 'podMarketplace__listedPods', + PodMarketplaceOrderBeans = 'podMarketplace__orderBeans', + PodMarketplacePodVolume = 'podMarketplace__podVolume', + PodMarketplaceSeason = 'podMarketplace__season', + PricePerPod = 'pricePerPod', + PricingFunction = 'pricingFunction', + PricingType = 'pricingType', + RemainingAmount = 'remainingAmount', + Start = 'start', + Status = 'status', + UpdatedAt = 'updatedAt' +} + +export type PodMarketplace = { + __typename?: 'PodMarketplace'; + /** Information about the active pod listings. Each entry of the form 'account-index-expiry' */ + activeListings: Array; + /** Information about the active pod orders. Each entry of the form 'orderId-maxPlaceInLine' */ + activeOrders: Array; + /** All historical listings */ + allListings: Array; + /** All historical orders */ + allOrders: Array; + /** Current amount of total pods listed */ + availableListedPods: Scalars['BigInt']['output']; + /** Current amount of total beans in pod orders */ + availableOrderBeans: Scalars['BigInt']['output']; + /** Cumulative bean volume between listings and orders */ + beanVolume: Scalars['BigInt']['output']; + /** Current cumulative pod listings that were cancelled */ + cancelledListedPods: Scalars['BigInt']['output']; + /** Current cumulative beans in pod orders cancelled */ + cancelledOrderBeans: Scalars['BigInt']['output']; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Current cumulative pod listings that expired */ + expiredListedPods: Scalars['BigInt']['output']; + /** Current cumulative pod listings filled */ + filledListedPods: Scalars['BigInt']['output']; + /** Current cumulative filled beans in pod orders */ + filledOrderBeans: Scalars['BigInt']['output']; + /** Current cumulative pod orders filled */ + filledOrderedPods: Scalars['BigInt']['output']; + /** All historical marketplace fills */ + fills: Array; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Field id */ + id: Scalars['ID']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Current cumulative pods listed for sale */ + listedPods: Scalars['BigInt']['output']; + /** Current cumulative beans in pod orders created */ + orderBeans: Scalars['BigInt']['output']; + /** Cumulative pod volume between listings and orders */ + podVolume: Scalars['BigInt']['output']; + /** Current season of the marketplace */ + season: Scalars['Int']['output']; +}; + + +export type PodMarketplaceAllListingsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PodMarketplaceAllOrdersArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PodMarketplaceDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PodMarketplaceFillsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PodMarketplaceHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PodMarketplaceDailySnapshot = { + __typename?: 'PodMarketplaceDailySnapshot'; + /** Point in time current amount of total pods listed */ + availableListedPods: Scalars['BigInt']['output']; + /** Current amount of total beans in pod orders */ + availableOrderBeans: Scalars['BigInt']['output']; + /** Point in time current cumulative bean volume between listings and orders */ + beanVolume: Scalars['BigInt']['output']; + /** Point in time current cumulative pod listings that were cancelled */ + cancelledListedPods: Scalars['BigInt']['output']; + /** Current cumulative beans in pod orders cancelled */ + cancelledOrderBeans: Scalars['BigInt']['output']; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaAvailableListedPods: Scalars['BigInt']['output']; + deltaAvailableOrderBeans: Scalars['BigInt']['output']; + deltaBeanVolume: Scalars['BigInt']['output']; + deltaCancelledListedPods: Scalars['BigInt']['output']; + deltaCancelledOrderBeans: Scalars['BigInt']['output']; + deltaExpiredListedPods: Scalars['BigInt']['output']; + deltaFilledListedPods: Scalars['BigInt']['output']; + deltaFilledOrderBeans: Scalars['BigInt']['output']; + deltaFilledOrderedPods: Scalars['BigInt']['output']; + deltaListedPods: Scalars['BigInt']['output']; + deltaOrderBeans: Scalars['BigInt']['output']; + deltaPodVolume: Scalars['BigInt']['output']; + /** Point in time current cumulative pod listings that expired */ + expiredListedPods: Scalars['BigInt']['output']; + /** Point in time current cumulative pod listings filled */ + filledListedPods: Scalars['BigInt']['output']; + /** Current cumulative filled beans in pod orders */ + filledOrderBeans: Scalars['BigInt']['output']; + /** Current cumulative pod orders filled */ + filledOrderedPods: Scalars['BigInt']['output']; + /** Marketplace ID - Day */ + id: Scalars['ID']['output']; + /** Point in time current cumulative pods listed for sale */ + listedPods: Scalars['BigInt']['output']; + /** Current cumulative beans in pod orders created */ + orderBeans: Scalars['BigInt']['output']; + /** Marketplace associated with snapshot */ + podMarketplace: PodMarketplace; + /** Point in time current cumulative pod volume between listings and orders */ + podVolume: Scalars['BigInt']['output']; + /** Point in time latest season */ + season: Scalars['Int']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type PodMarketplaceDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + availableListedPods?: InputMaybe; + availableListedPods_gt?: InputMaybe; + availableListedPods_gte?: InputMaybe; + availableListedPods_in?: InputMaybe>; + availableListedPods_lt?: InputMaybe; + availableListedPods_lte?: InputMaybe; + availableListedPods_not?: InputMaybe; + availableListedPods_not_in?: InputMaybe>; + availableOrderBeans?: InputMaybe; + availableOrderBeans_gt?: InputMaybe; + availableOrderBeans_gte?: InputMaybe; + availableOrderBeans_in?: InputMaybe>; + availableOrderBeans_lt?: InputMaybe; + availableOrderBeans_lte?: InputMaybe; + availableOrderBeans_not?: InputMaybe; + availableOrderBeans_not_in?: InputMaybe>; + beanVolume?: InputMaybe; + beanVolume_gt?: InputMaybe; + beanVolume_gte?: InputMaybe; + beanVolume_in?: InputMaybe>; + beanVolume_lt?: InputMaybe; + beanVolume_lte?: InputMaybe; + beanVolume_not?: InputMaybe; + beanVolume_not_in?: InputMaybe>; + cancelledListedPods?: InputMaybe; + cancelledListedPods_gt?: InputMaybe; + cancelledListedPods_gte?: InputMaybe; + cancelledListedPods_in?: InputMaybe>; + cancelledListedPods_lt?: InputMaybe; + cancelledListedPods_lte?: InputMaybe; + cancelledListedPods_not?: InputMaybe; + cancelledListedPods_not_in?: InputMaybe>; + cancelledOrderBeans?: InputMaybe; + cancelledOrderBeans_gt?: InputMaybe; + cancelledOrderBeans_gte?: InputMaybe; + cancelledOrderBeans_in?: InputMaybe>; + cancelledOrderBeans_lt?: InputMaybe; + cancelledOrderBeans_lte?: InputMaybe; + cancelledOrderBeans_not?: InputMaybe; + cancelledOrderBeans_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaAvailableListedPods?: InputMaybe; + deltaAvailableListedPods_gt?: InputMaybe; + deltaAvailableListedPods_gte?: InputMaybe; + deltaAvailableListedPods_in?: InputMaybe>; + deltaAvailableListedPods_lt?: InputMaybe; + deltaAvailableListedPods_lte?: InputMaybe; + deltaAvailableListedPods_not?: InputMaybe; + deltaAvailableListedPods_not_in?: InputMaybe>; + deltaAvailableOrderBeans?: InputMaybe; + deltaAvailableOrderBeans_gt?: InputMaybe; + deltaAvailableOrderBeans_gte?: InputMaybe; + deltaAvailableOrderBeans_in?: InputMaybe>; + deltaAvailableOrderBeans_lt?: InputMaybe; + deltaAvailableOrderBeans_lte?: InputMaybe; + deltaAvailableOrderBeans_not?: InputMaybe; + deltaAvailableOrderBeans_not_in?: InputMaybe>; + deltaBeanVolume?: InputMaybe; + deltaBeanVolume_gt?: InputMaybe; + deltaBeanVolume_gte?: InputMaybe; + deltaBeanVolume_in?: InputMaybe>; + deltaBeanVolume_lt?: InputMaybe; + deltaBeanVolume_lte?: InputMaybe; + deltaBeanVolume_not?: InputMaybe; + deltaBeanVolume_not_in?: InputMaybe>; + deltaCancelledListedPods?: InputMaybe; + deltaCancelledListedPods_gt?: InputMaybe; + deltaCancelledListedPods_gte?: InputMaybe; + deltaCancelledListedPods_in?: InputMaybe>; + deltaCancelledListedPods_lt?: InputMaybe; + deltaCancelledListedPods_lte?: InputMaybe; + deltaCancelledListedPods_not?: InputMaybe; + deltaCancelledListedPods_not_in?: InputMaybe>; + deltaCancelledOrderBeans?: InputMaybe; + deltaCancelledOrderBeans_gt?: InputMaybe; + deltaCancelledOrderBeans_gte?: InputMaybe; + deltaCancelledOrderBeans_in?: InputMaybe>; + deltaCancelledOrderBeans_lt?: InputMaybe; + deltaCancelledOrderBeans_lte?: InputMaybe; + deltaCancelledOrderBeans_not?: InputMaybe; + deltaCancelledOrderBeans_not_in?: InputMaybe>; + deltaExpiredListedPods?: InputMaybe; + deltaExpiredListedPods_gt?: InputMaybe; + deltaExpiredListedPods_gte?: InputMaybe; + deltaExpiredListedPods_in?: InputMaybe>; + deltaExpiredListedPods_lt?: InputMaybe; + deltaExpiredListedPods_lte?: InputMaybe; + deltaExpiredListedPods_not?: InputMaybe; + deltaExpiredListedPods_not_in?: InputMaybe>; + deltaFilledListedPods?: InputMaybe; + deltaFilledListedPods_gt?: InputMaybe; + deltaFilledListedPods_gte?: InputMaybe; + deltaFilledListedPods_in?: InputMaybe>; + deltaFilledListedPods_lt?: InputMaybe; + deltaFilledListedPods_lte?: InputMaybe; + deltaFilledListedPods_not?: InputMaybe; + deltaFilledListedPods_not_in?: InputMaybe>; + deltaFilledOrderBeans?: InputMaybe; + deltaFilledOrderBeans_gt?: InputMaybe; + deltaFilledOrderBeans_gte?: InputMaybe; + deltaFilledOrderBeans_in?: InputMaybe>; + deltaFilledOrderBeans_lt?: InputMaybe; + deltaFilledOrderBeans_lte?: InputMaybe; + deltaFilledOrderBeans_not?: InputMaybe; + deltaFilledOrderBeans_not_in?: InputMaybe>; + deltaFilledOrderedPods?: InputMaybe; + deltaFilledOrderedPods_gt?: InputMaybe; + deltaFilledOrderedPods_gte?: InputMaybe; + deltaFilledOrderedPods_in?: InputMaybe>; + deltaFilledOrderedPods_lt?: InputMaybe; + deltaFilledOrderedPods_lte?: InputMaybe; + deltaFilledOrderedPods_not?: InputMaybe; + deltaFilledOrderedPods_not_in?: InputMaybe>; + deltaListedPods?: InputMaybe; + deltaListedPods_gt?: InputMaybe; + deltaListedPods_gte?: InputMaybe; + deltaListedPods_in?: InputMaybe>; + deltaListedPods_lt?: InputMaybe; + deltaListedPods_lte?: InputMaybe; + deltaListedPods_not?: InputMaybe; + deltaListedPods_not_in?: InputMaybe>; + deltaOrderBeans?: InputMaybe; + deltaOrderBeans_gt?: InputMaybe; + deltaOrderBeans_gte?: InputMaybe; + deltaOrderBeans_in?: InputMaybe>; + deltaOrderBeans_lt?: InputMaybe; + deltaOrderBeans_lte?: InputMaybe; + deltaOrderBeans_not?: InputMaybe; + deltaOrderBeans_not_in?: InputMaybe>; + deltaPodVolume?: InputMaybe; + deltaPodVolume_gt?: InputMaybe; + deltaPodVolume_gte?: InputMaybe; + deltaPodVolume_in?: InputMaybe>; + deltaPodVolume_lt?: InputMaybe; + deltaPodVolume_lte?: InputMaybe; + deltaPodVolume_not?: InputMaybe; + deltaPodVolume_not_in?: InputMaybe>; + expiredListedPods?: InputMaybe; + expiredListedPods_gt?: InputMaybe; + expiredListedPods_gte?: InputMaybe; + expiredListedPods_in?: InputMaybe>; + expiredListedPods_lt?: InputMaybe; + expiredListedPods_lte?: InputMaybe; + expiredListedPods_not?: InputMaybe; + expiredListedPods_not_in?: InputMaybe>; + filledListedPods?: InputMaybe; + filledListedPods_gt?: InputMaybe; + filledListedPods_gte?: InputMaybe; + filledListedPods_in?: InputMaybe>; + filledListedPods_lt?: InputMaybe; + filledListedPods_lte?: InputMaybe; + filledListedPods_not?: InputMaybe; + filledListedPods_not_in?: InputMaybe>; + filledOrderBeans?: InputMaybe; + filledOrderBeans_gt?: InputMaybe; + filledOrderBeans_gte?: InputMaybe; + filledOrderBeans_in?: InputMaybe>; + filledOrderBeans_lt?: InputMaybe; + filledOrderBeans_lte?: InputMaybe; + filledOrderBeans_not?: InputMaybe; + filledOrderBeans_not_in?: InputMaybe>; + filledOrderedPods?: InputMaybe; + filledOrderedPods_gt?: InputMaybe; + filledOrderedPods_gte?: InputMaybe; + filledOrderedPods_in?: InputMaybe>; + filledOrderedPods_lt?: InputMaybe; + filledOrderedPods_lte?: InputMaybe; + filledOrderedPods_not?: InputMaybe; + filledOrderedPods_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + listedPods?: InputMaybe; + listedPods_gt?: InputMaybe; + listedPods_gte?: InputMaybe; + listedPods_in?: InputMaybe>; + listedPods_lt?: InputMaybe; + listedPods_lte?: InputMaybe; + listedPods_not?: InputMaybe; + listedPods_not_in?: InputMaybe>; + or?: InputMaybe>>; + orderBeans?: InputMaybe; + orderBeans_gt?: InputMaybe; + orderBeans_gte?: InputMaybe; + orderBeans_in?: InputMaybe>; + orderBeans_lt?: InputMaybe; + orderBeans_lte?: InputMaybe; + orderBeans_not?: InputMaybe; + orderBeans_not_in?: InputMaybe>; + podMarketplace?: InputMaybe; + podMarketplace_?: InputMaybe; + podMarketplace_contains?: InputMaybe; + podMarketplace_contains_nocase?: InputMaybe; + podMarketplace_ends_with?: InputMaybe; + podMarketplace_ends_with_nocase?: InputMaybe; + podMarketplace_gt?: InputMaybe; + podMarketplace_gte?: InputMaybe; + podMarketplace_in?: InputMaybe>; + podMarketplace_lt?: InputMaybe; + podMarketplace_lte?: InputMaybe; + podMarketplace_not?: InputMaybe; + podMarketplace_not_contains?: InputMaybe; + podMarketplace_not_contains_nocase?: InputMaybe; + podMarketplace_not_ends_with?: InputMaybe; + podMarketplace_not_ends_with_nocase?: InputMaybe; + podMarketplace_not_in?: InputMaybe>; + podMarketplace_not_starts_with?: InputMaybe; + podMarketplace_not_starts_with_nocase?: InputMaybe; + podMarketplace_starts_with?: InputMaybe; + podMarketplace_starts_with_nocase?: InputMaybe; + podVolume?: InputMaybe; + podVolume_gt?: InputMaybe; + podVolume_gte?: InputMaybe; + podVolume_in?: InputMaybe>; + podVolume_lt?: InputMaybe; + podVolume_lte?: InputMaybe; + podVolume_not?: InputMaybe; + podVolume_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum PodMarketplaceDailySnapshot_OrderBy { + AvailableListedPods = 'availableListedPods', + AvailableOrderBeans = 'availableOrderBeans', + BeanVolume = 'beanVolume', + CancelledListedPods = 'cancelledListedPods', + CancelledOrderBeans = 'cancelledOrderBeans', + CreatedAt = 'createdAt', + DeltaAvailableListedPods = 'deltaAvailableListedPods', + DeltaAvailableOrderBeans = 'deltaAvailableOrderBeans', + DeltaBeanVolume = 'deltaBeanVolume', + DeltaCancelledListedPods = 'deltaCancelledListedPods', + DeltaCancelledOrderBeans = 'deltaCancelledOrderBeans', + DeltaExpiredListedPods = 'deltaExpiredListedPods', + DeltaFilledListedPods = 'deltaFilledListedPods', + DeltaFilledOrderBeans = 'deltaFilledOrderBeans', + DeltaFilledOrderedPods = 'deltaFilledOrderedPods', + DeltaListedPods = 'deltaListedPods', + DeltaOrderBeans = 'deltaOrderBeans', + DeltaPodVolume = 'deltaPodVolume', + ExpiredListedPods = 'expiredListedPods', + FilledListedPods = 'filledListedPods', + FilledOrderBeans = 'filledOrderBeans', + FilledOrderedPods = 'filledOrderedPods', + Id = 'id', + ListedPods = 'listedPods', + OrderBeans = 'orderBeans', + PodMarketplace = 'podMarketplace', + PodMarketplaceAvailableListedPods = 'podMarketplace__availableListedPods', + PodMarketplaceAvailableOrderBeans = 'podMarketplace__availableOrderBeans', + PodMarketplaceBeanVolume = 'podMarketplace__beanVolume', + PodMarketplaceCancelledListedPods = 'podMarketplace__cancelledListedPods', + PodMarketplaceCancelledOrderBeans = 'podMarketplace__cancelledOrderBeans', + PodMarketplaceExpiredListedPods = 'podMarketplace__expiredListedPods', + PodMarketplaceFilledListedPods = 'podMarketplace__filledListedPods', + PodMarketplaceFilledOrderBeans = 'podMarketplace__filledOrderBeans', + PodMarketplaceFilledOrderedPods = 'podMarketplace__filledOrderedPods', + PodMarketplaceId = 'podMarketplace__id', + PodMarketplaceLastDailySnapshotDay = 'podMarketplace__lastDailySnapshotDay', + PodMarketplaceLastHourlySnapshotSeason = 'podMarketplace__lastHourlySnapshotSeason', + PodMarketplaceListedPods = 'podMarketplace__listedPods', + PodMarketplaceOrderBeans = 'podMarketplace__orderBeans', + PodMarketplacePodVolume = 'podMarketplace__podVolume', + PodMarketplaceSeason = 'podMarketplace__season', + PodVolume = 'podVolume', + Season = 'season', + UpdatedAt = 'updatedAt' +} + +export type PodMarketplaceHourlySnapshot = { + __typename?: 'PodMarketplaceHourlySnapshot'; + /** Point in time current amount of total pods listed */ + availableListedPods: Scalars['BigInt']['output']; + /** Current amount of total beans in pod orders */ + availableOrderBeans: Scalars['BigInt']['output']; + /** Point in time current cumulative bean volume between listings and orders */ + beanVolume: Scalars['BigInt']['output']; + /** Point in time current cumulative pod listings that were cancelled */ + cancelledListedPods: Scalars['BigInt']['output']; + /** Current cumulative beans in pod orders cancelled */ + cancelledOrderBeans: Scalars['BigInt']['output']; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaAvailableListedPods: Scalars['BigInt']['output']; + deltaAvailableOrderBeans: Scalars['BigInt']['output']; + deltaBeanVolume: Scalars['BigInt']['output']; + deltaCancelledListedPods: Scalars['BigInt']['output']; + deltaCancelledOrderBeans: Scalars['BigInt']['output']; + deltaExpiredListedPods: Scalars['BigInt']['output']; + deltaFilledListedPods: Scalars['BigInt']['output']; + deltaFilledOrderBeans: Scalars['BigInt']['output']; + deltaFilledOrderedPods: Scalars['BigInt']['output']; + deltaListedPods: Scalars['BigInt']['output']; + deltaOrderBeans: Scalars['BigInt']['output']; + deltaPodVolume: Scalars['BigInt']['output']; + /** Point in time current cumulative pod listings that expired */ + expiredListedPods: Scalars['BigInt']['output']; + /** Point in time current cumulative pod listings filled */ + filledListedPods: Scalars['BigInt']['output']; + /** Current cumulative filled beans in pod orders */ + filledOrderBeans: Scalars['BigInt']['output']; + /** Current cumulative pod orders filled */ + filledOrderedPods: Scalars['BigInt']['output']; + /** Marketplace ID - Season */ + id: Scalars['ID']['output']; + /** Point in time current cumulative pods listed for sale */ + listedPods: Scalars['BigInt']['output']; + /** Current cumulative beans in pod orders created */ + orderBeans: Scalars['BigInt']['output']; + /** Marketplace associated with snapshot */ + podMarketplace: PodMarketplace; + /** Point in time current cumulative pod volume between listings and orders */ + podVolume: Scalars['BigInt']['output']; + /** Point in time latest season */ + season: Scalars['Int']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type PodMarketplaceHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + availableListedPods?: InputMaybe; + availableListedPods_gt?: InputMaybe; + availableListedPods_gte?: InputMaybe; + availableListedPods_in?: InputMaybe>; + availableListedPods_lt?: InputMaybe; + availableListedPods_lte?: InputMaybe; + availableListedPods_not?: InputMaybe; + availableListedPods_not_in?: InputMaybe>; + availableOrderBeans?: InputMaybe; + availableOrderBeans_gt?: InputMaybe; + availableOrderBeans_gte?: InputMaybe; + availableOrderBeans_in?: InputMaybe>; + availableOrderBeans_lt?: InputMaybe; + availableOrderBeans_lte?: InputMaybe; + availableOrderBeans_not?: InputMaybe; + availableOrderBeans_not_in?: InputMaybe>; + beanVolume?: InputMaybe; + beanVolume_gt?: InputMaybe; + beanVolume_gte?: InputMaybe; + beanVolume_in?: InputMaybe>; + beanVolume_lt?: InputMaybe; + beanVolume_lte?: InputMaybe; + beanVolume_not?: InputMaybe; + beanVolume_not_in?: InputMaybe>; + cancelledListedPods?: InputMaybe; + cancelledListedPods_gt?: InputMaybe; + cancelledListedPods_gte?: InputMaybe; + cancelledListedPods_in?: InputMaybe>; + cancelledListedPods_lt?: InputMaybe; + cancelledListedPods_lte?: InputMaybe; + cancelledListedPods_not?: InputMaybe; + cancelledListedPods_not_in?: InputMaybe>; + cancelledOrderBeans?: InputMaybe; + cancelledOrderBeans_gt?: InputMaybe; + cancelledOrderBeans_gte?: InputMaybe; + cancelledOrderBeans_in?: InputMaybe>; + cancelledOrderBeans_lt?: InputMaybe; + cancelledOrderBeans_lte?: InputMaybe; + cancelledOrderBeans_not?: InputMaybe; + cancelledOrderBeans_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaAvailableListedPods?: InputMaybe; + deltaAvailableListedPods_gt?: InputMaybe; + deltaAvailableListedPods_gte?: InputMaybe; + deltaAvailableListedPods_in?: InputMaybe>; + deltaAvailableListedPods_lt?: InputMaybe; + deltaAvailableListedPods_lte?: InputMaybe; + deltaAvailableListedPods_not?: InputMaybe; + deltaAvailableListedPods_not_in?: InputMaybe>; + deltaAvailableOrderBeans?: InputMaybe; + deltaAvailableOrderBeans_gt?: InputMaybe; + deltaAvailableOrderBeans_gte?: InputMaybe; + deltaAvailableOrderBeans_in?: InputMaybe>; + deltaAvailableOrderBeans_lt?: InputMaybe; + deltaAvailableOrderBeans_lte?: InputMaybe; + deltaAvailableOrderBeans_not?: InputMaybe; + deltaAvailableOrderBeans_not_in?: InputMaybe>; + deltaBeanVolume?: InputMaybe; + deltaBeanVolume_gt?: InputMaybe; + deltaBeanVolume_gte?: InputMaybe; + deltaBeanVolume_in?: InputMaybe>; + deltaBeanVolume_lt?: InputMaybe; + deltaBeanVolume_lte?: InputMaybe; + deltaBeanVolume_not?: InputMaybe; + deltaBeanVolume_not_in?: InputMaybe>; + deltaCancelledListedPods?: InputMaybe; + deltaCancelledListedPods_gt?: InputMaybe; + deltaCancelledListedPods_gte?: InputMaybe; + deltaCancelledListedPods_in?: InputMaybe>; + deltaCancelledListedPods_lt?: InputMaybe; + deltaCancelledListedPods_lte?: InputMaybe; + deltaCancelledListedPods_not?: InputMaybe; + deltaCancelledListedPods_not_in?: InputMaybe>; + deltaCancelledOrderBeans?: InputMaybe; + deltaCancelledOrderBeans_gt?: InputMaybe; + deltaCancelledOrderBeans_gte?: InputMaybe; + deltaCancelledOrderBeans_in?: InputMaybe>; + deltaCancelledOrderBeans_lt?: InputMaybe; + deltaCancelledOrderBeans_lte?: InputMaybe; + deltaCancelledOrderBeans_not?: InputMaybe; + deltaCancelledOrderBeans_not_in?: InputMaybe>; + deltaExpiredListedPods?: InputMaybe; + deltaExpiredListedPods_gt?: InputMaybe; + deltaExpiredListedPods_gte?: InputMaybe; + deltaExpiredListedPods_in?: InputMaybe>; + deltaExpiredListedPods_lt?: InputMaybe; + deltaExpiredListedPods_lte?: InputMaybe; + deltaExpiredListedPods_not?: InputMaybe; + deltaExpiredListedPods_not_in?: InputMaybe>; + deltaFilledListedPods?: InputMaybe; + deltaFilledListedPods_gt?: InputMaybe; + deltaFilledListedPods_gte?: InputMaybe; + deltaFilledListedPods_in?: InputMaybe>; + deltaFilledListedPods_lt?: InputMaybe; + deltaFilledListedPods_lte?: InputMaybe; + deltaFilledListedPods_not?: InputMaybe; + deltaFilledListedPods_not_in?: InputMaybe>; + deltaFilledOrderBeans?: InputMaybe; + deltaFilledOrderBeans_gt?: InputMaybe; + deltaFilledOrderBeans_gte?: InputMaybe; + deltaFilledOrderBeans_in?: InputMaybe>; + deltaFilledOrderBeans_lt?: InputMaybe; + deltaFilledOrderBeans_lte?: InputMaybe; + deltaFilledOrderBeans_not?: InputMaybe; + deltaFilledOrderBeans_not_in?: InputMaybe>; + deltaFilledOrderedPods?: InputMaybe; + deltaFilledOrderedPods_gt?: InputMaybe; + deltaFilledOrderedPods_gte?: InputMaybe; + deltaFilledOrderedPods_in?: InputMaybe>; + deltaFilledOrderedPods_lt?: InputMaybe; + deltaFilledOrderedPods_lte?: InputMaybe; + deltaFilledOrderedPods_not?: InputMaybe; + deltaFilledOrderedPods_not_in?: InputMaybe>; + deltaListedPods?: InputMaybe; + deltaListedPods_gt?: InputMaybe; + deltaListedPods_gte?: InputMaybe; + deltaListedPods_in?: InputMaybe>; + deltaListedPods_lt?: InputMaybe; + deltaListedPods_lte?: InputMaybe; + deltaListedPods_not?: InputMaybe; + deltaListedPods_not_in?: InputMaybe>; + deltaOrderBeans?: InputMaybe; + deltaOrderBeans_gt?: InputMaybe; + deltaOrderBeans_gte?: InputMaybe; + deltaOrderBeans_in?: InputMaybe>; + deltaOrderBeans_lt?: InputMaybe; + deltaOrderBeans_lte?: InputMaybe; + deltaOrderBeans_not?: InputMaybe; + deltaOrderBeans_not_in?: InputMaybe>; + deltaPodVolume?: InputMaybe; + deltaPodVolume_gt?: InputMaybe; + deltaPodVolume_gte?: InputMaybe; + deltaPodVolume_in?: InputMaybe>; + deltaPodVolume_lt?: InputMaybe; + deltaPodVolume_lte?: InputMaybe; + deltaPodVolume_not?: InputMaybe; + deltaPodVolume_not_in?: InputMaybe>; + expiredListedPods?: InputMaybe; + expiredListedPods_gt?: InputMaybe; + expiredListedPods_gte?: InputMaybe; + expiredListedPods_in?: InputMaybe>; + expiredListedPods_lt?: InputMaybe; + expiredListedPods_lte?: InputMaybe; + expiredListedPods_not?: InputMaybe; + expiredListedPods_not_in?: InputMaybe>; + filledListedPods?: InputMaybe; + filledListedPods_gt?: InputMaybe; + filledListedPods_gte?: InputMaybe; + filledListedPods_in?: InputMaybe>; + filledListedPods_lt?: InputMaybe; + filledListedPods_lte?: InputMaybe; + filledListedPods_not?: InputMaybe; + filledListedPods_not_in?: InputMaybe>; + filledOrderBeans?: InputMaybe; + filledOrderBeans_gt?: InputMaybe; + filledOrderBeans_gte?: InputMaybe; + filledOrderBeans_in?: InputMaybe>; + filledOrderBeans_lt?: InputMaybe; + filledOrderBeans_lte?: InputMaybe; + filledOrderBeans_not?: InputMaybe; + filledOrderBeans_not_in?: InputMaybe>; + filledOrderedPods?: InputMaybe; + filledOrderedPods_gt?: InputMaybe; + filledOrderedPods_gte?: InputMaybe; + filledOrderedPods_in?: InputMaybe>; + filledOrderedPods_lt?: InputMaybe; + filledOrderedPods_lte?: InputMaybe; + filledOrderedPods_not?: InputMaybe; + filledOrderedPods_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + listedPods?: InputMaybe; + listedPods_gt?: InputMaybe; + listedPods_gte?: InputMaybe; + listedPods_in?: InputMaybe>; + listedPods_lt?: InputMaybe; + listedPods_lte?: InputMaybe; + listedPods_not?: InputMaybe; + listedPods_not_in?: InputMaybe>; + or?: InputMaybe>>; + orderBeans?: InputMaybe; + orderBeans_gt?: InputMaybe; + orderBeans_gte?: InputMaybe; + orderBeans_in?: InputMaybe>; + orderBeans_lt?: InputMaybe; + orderBeans_lte?: InputMaybe; + orderBeans_not?: InputMaybe; + orderBeans_not_in?: InputMaybe>; + podMarketplace?: InputMaybe; + podMarketplace_?: InputMaybe; + podMarketplace_contains?: InputMaybe; + podMarketplace_contains_nocase?: InputMaybe; + podMarketplace_ends_with?: InputMaybe; + podMarketplace_ends_with_nocase?: InputMaybe; + podMarketplace_gt?: InputMaybe; + podMarketplace_gte?: InputMaybe; + podMarketplace_in?: InputMaybe>; + podMarketplace_lt?: InputMaybe; + podMarketplace_lte?: InputMaybe; + podMarketplace_not?: InputMaybe; + podMarketplace_not_contains?: InputMaybe; + podMarketplace_not_contains_nocase?: InputMaybe; + podMarketplace_not_ends_with?: InputMaybe; + podMarketplace_not_ends_with_nocase?: InputMaybe; + podMarketplace_not_in?: InputMaybe>; + podMarketplace_not_starts_with?: InputMaybe; + podMarketplace_not_starts_with_nocase?: InputMaybe; + podMarketplace_starts_with?: InputMaybe; + podMarketplace_starts_with_nocase?: InputMaybe; + podVolume?: InputMaybe; + podVolume_gt?: InputMaybe; + podVolume_gte?: InputMaybe; + podVolume_in?: InputMaybe>; + podVolume_lt?: InputMaybe; + podVolume_lte?: InputMaybe; + podVolume_not?: InputMaybe; + podVolume_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum PodMarketplaceHourlySnapshot_OrderBy { + AvailableListedPods = 'availableListedPods', + AvailableOrderBeans = 'availableOrderBeans', + BeanVolume = 'beanVolume', + CancelledListedPods = 'cancelledListedPods', + CancelledOrderBeans = 'cancelledOrderBeans', + CreatedAt = 'createdAt', + DeltaAvailableListedPods = 'deltaAvailableListedPods', + DeltaAvailableOrderBeans = 'deltaAvailableOrderBeans', + DeltaBeanVolume = 'deltaBeanVolume', + DeltaCancelledListedPods = 'deltaCancelledListedPods', + DeltaCancelledOrderBeans = 'deltaCancelledOrderBeans', + DeltaExpiredListedPods = 'deltaExpiredListedPods', + DeltaFilledListedPods = 'deltaFilledListedPods', + DeltaFilledOrderBeans = 'deltaFilledOrderBeans', + DeltaFilledOrderedPods = 'deltaFilledOrderedPods', + DeltaListedPods = 'deltaListedPods', + DeltaOrderBeans = 'deltaOrderBeans', + DeltaPodVolume = 'deltaPodVolume', + ExpiredListedPods = 'expiredListedPods', + FilledListedPods = 'filledListedPods', + FilledOrderBeans = 'filledOrderBeans', + FilledOrderedPods = 'filledOrderedPods', + Id = 'id', + ListedPods = 'listedPods', + OrderBeans = 'orderBeans', + PodMarketplace = 'podMarketplace', + PodMarketplaceAvailableListedPods = 'podMarketplace__availableListedPods', + PodMarketplaceAvailableOrderBeans = 'podMarketplace__availableOrderBeans', + PodMarketplaceBeanVolume = 'podMarketplace__beanVolume', + PodMarketplaceCancelledListedPods = 'podMarketplace__cancelledListedPods', + PodMarketplaceCancelledOrderBeans = 'podMarketplace__cancelledOrderBeans', + PodMarketplaceExpiredListedPods = 'podMarketplace__expiredListedPods', + PodMarketplaceFilledListedPods = 'podMarketplace__filledListedPods', + PodMarketplaceFilledOrderBeans = 'podMarketplace__filledOrderBeans', + PodMarketplaceFilledOrderedPods = 'podMarketplace__filledOrderedPods', + PodMarketplaceId = 'podMarketplace__id', + PodMarketplaceLastDailySnapshotDay = 'podMarketplace__lastDailySnapshotDay', + PodMarketplaceLastHourlySnapshotSeason = 'podMarketplace__lastHourlySnapshotSeason', + PodMarketplaceListedPods = 'podMarketplace__listedPods', + PodMarketplaceOrderBeans = 'podMarketplace__orderBeans', + PodMarketplacePodVolume = 'podMarketplace__podVolume', + PodMarketplaceSeason = 'podMarketplace__season', + PodVolume = 'podVolume', + Season = 'season', + UpdatedAt = 'updatedAt' +} + +export type PodMarketplace_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + activeListings?: InputMaybe>; + activeListings_contains?: InputMaybe>; + activeListings_contains_nocase?: InputMaybe>; + activeListings_not?: InputMaybe>; + activeListings_not_contains?: InputMaybe>; + activeListings_not_contains_nocase?: InputMaybe>; + activeOrders?: InputMaybe>; + activeOrders_contains?: InputMaybe>; + activeOrders_contains_nocase?: InputMaybe>; + activeOrders_not?: InputMaybe>; + activeOrders_not_contains?: InputMaybe>; + activeOrders_not_contains_nocase?: InputMaybe>; + allListings_?: InputMaybe; + allOrders_?: InputMaybe; + and?: InputMaybe>>; + availableListedPods?: InputMaybe; + availableListedPods_gt?: InputMaybe; + availableListedPods_gte?: InputMaybe; + availableListedPods_in?: InputMaybe>; + availableListedPods_lt?: InputMaybe; + availableListedPods_lte?: InputMaybe; + availableListedPods_not?: InputMaybe; + availableListedPods_not_in?: InputMaybe>; + availableOrderBeans?: InputMaybe; + availableOrderBeans_gt?: InputMaybe; + availableOrderBeans_gte?: InputMaybe; + availableOrderBeans_in?: InputMaybe>; + availableOrderBeans_lt?: InputMaybe; + availableOrderBeans_lte?: InputMaybe; + availableOrderBeans_not?: InputMaybe; + availableOrderBeans_not_in?: InputMaybe>; + beanVolume?: InputMaybe; + beanVolume_gt?: InputMaybe; + beanVolume_gte?: InputMaybe; + beanVolume_in?: InputMaybe>; + beanVolume_lt?: InputMaybe; + beanVolume_lte?: InputMaybe; + beanVolume_not?: InputMaybe; + beanVolume_not_in?: InputMaybe>; + cancelledListedPods?: InputMaybe; + cancelledListedPods_gt?: InputMaybe; + cancelledListedPods_gte?: InputMaybe; + cancelledListedPods_in?: InputMaybe>; + cancelledListedPods_lt?: InputMaybe; + cancelledListedPods_lte?: InputMaybe; + cancelledListedPods_not?: InputMaybe; + cancelledListedPods_not_in?: InputMaybe>; + cancelledOrderBeans?: InputMaybe; + cancelledOrderBeans_gt?: InputMaybe; + cancelledOrderBeans_gte?: InputMaybe; + cancelledOrderBeans_in?: InputMaybe>; + cancelledOrderBeans_lt?: InputMaybe; + cancelledOrderBeans_lte?: InputMaybe; + cancelledOrderBeans_not?: InputMaybe; + cancelledOrderBeans_not_in?: InputMaybe>; + dailySnapshots_?: InputMaybe; + expiredListedPods?: InputMaybe; + expiredListedPods_gt?: InputMaybe; + expiredListedPods_gte?: InputMaybe; + expiredListedPods_in?: InputMaybe>; + expiredListedPods_lt?: InputMaybe; + expiredListedPods_lte?: InputMaybe; + expiredListedPods_not?: InputMaybe; + expiredListedPods_not_in?: InputMaybe>; + filledListedPods?: InputMaybe; + filledListedPods_gt?: InputMaybe; + filledListedPods_gte?: InputMaybe; + filledListedPods_in?: InputMaybe>; + filledListedPods_lt?: InputMaybe; + filledListedPods_lte?: InputMaybe; + filledListedPods_not?: InputMaybe; + filledListedPods_not_in?: InputMaybe>; + filledOrderBeans?: InputMaybe; + filledOrderBeans_gt?: InputMaybe; + filledOrderBeans_gte?: InputMaybe; + filledOrderBeans_in?: InputMaybe>; + filledOrderBeans_lt?: InputMaybe; + filledOrderBeans_lte?: InputMaybe; + filledOrderBeans_not?: InputMaybe; + filledOrderBeans_not_in?: InputMaybe>; + filledOrderedPods?: InputMaybe; + filledOrderedPods_gt?: InputMaybe; + filledOrderedPods_gte?: InputMaybe; + filledOrderedPods_in?: InputMaybe>; + filledOrderedPods_lt?: InputMaybe; + filledOrderedPods_lte?: InputMaybe; + filledOrderedPods_not?: InputMaybe; + filledOrderedPods_not_in?: InputMaybe>; + fills_?: InputMaybe; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + listedPods?: InputMaybe; + listedPods_gt?: InputMaybe; + listedPods_gte?: InputMaybe; + listedPods_in?: InputMaybe>; + listedPods_lt?: InputMaybe; + listedPods_lte?: InputMaybe; + listedPods_not?: InputMaybe; + listedPods_not_in?: InputMaybe>; + or?: InputMaybe>>; + orderBeans?: InputMaybe; + orderBeans_gt?: InputMaybe; + orderBeans_gte?: InputMaybe; + orderBeans_in?: InputMaybe>; + orderBeans_lt?: InputMaybe; + orderBeans_lte?: InputMaybe; + orderBeans_not?: InputMaybe; + orderBeans_not_in?: InputMaybe>; + podVolume?: InputMaybe; + podVolume_gt?: InputMaybe; + podVolume_gte?: InputMaybe; + podVolume_in?: InputMaybe>; + podVolume_lt?: InputMaybe; + podVolume_lte?: InputMaybe; + podVolume_not?: InputMaybe; + podVolume_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; +}; + +export enum PodMarketplace_OrderBy { + ActiveListings = 'activeListings', + ActiveOrders = 'activeOrders', + AllListings = 'allListings', + AllOrders = 'allOrders', + AvailableListedPods = 'availableListedPods', + AvailableOrderBeans = 'availableOrderBeans', + BeanVolume = 'beanVolume', + CancelledListedPods = 'cancelledListedPods', + CancelledOrderBeans = 'cancelledOrderBeans', + DailySnapshots = 'dailySnapshots', + ExpiredListedPods = 'expiredListedPods', + FilledListedPods = 'filledListedPods', + FilledOrderBeans = 'filledOrderBeans', + FilledOrderedPods = 'filledOrderedPods', + Fills = 'fills', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + ListedPods = 'listedPods', + OrderBeans = 'orderBeans', + PodVolume = 'podVolume', + Season = 'season' +} + +export type PodOrder = { + __typename?: 'PodOrder'; + /** + * The original number of Beans locked in the PodOrder. + * + * Does NOT change as Fills occur. + * Always deterministic, since the Farmer must lock Beans for PodOrder fulfillment. + * + * If FIXED (V1): `amount * pricePerPod` fields emitted in PodOrderCreated. + * If FIXED (V2): `amount` field emitted in PodOrderCreated. + * If DYNAMIC (V2): `amount` field emitted in PodOrderCreated. + * + */ + beanAmount: Scalars['BigInt']['output']; + /** + * The current number of Beans spent to acquire Pods. + * + * Increases during each subsequent Fill: + * `0 <= beanAmountFilled <= beanAmount` + * + * Upon PodOrder cancellation, this value is locked. + * + */ + beanAmountFilled: Scalars['BigInt']['output']; + /** Timestamp of PodOrder creation. */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash when this PodOrder entity was created. */ + creationHash: Scalars['Bytes']['output']; + /** The Farmer that created the Pod Order. */ + farmer: Farmer; + /** All Fills associated with this PodOrder. */ + fills: Array; + /** + * Historical ID for joins: `{account}-{createdAt}` + * + */ + historyID: Scalars['String']['output']; + /** + * The PodOrder ID matchces the `id` stored on-chain: + * + * `keccak256(abi.encodePacked(account, pricePerPod, maxPlaceInLine, minFillAmount))` + * + */ + id: Scalars['ID']['output']; + /** + * The Farmer is willing to buy any Pod that is before maxPlaceInLine at pricePerPod. + * As the Pod Line moves, this value stays the same because new Pods meet the criteria. + * + */ + maxPlaceInLine: Scalars['BigInt']['output']; + /** Minimum number of Pods required to perform a Fill. */ + minFillAmount: Scalars['BigInt']['output']; + /** + * The current number of Pods that have been purchased by this PodOrder. + * + * Increases during each subsequent Fill. + * If pricingType = FIXED: `0 <= podAmountFilled <= podAmount` + * If pricingType = DYNAMIC: No constraint, since `podAmount` is unknown. + * + * Upon PodOrder cancellation, this value is locked. + * + */ + podAmountFilled: Scalars['BigInt']['output']; + /** Marketplace used for Pod Order. */ + podMarketplace: PodMarketplace; + /** + * [V1] The FIXED price per Pod denominated in Beans. + * + * Ex. `pricePerPod = 10000` indicates a price of 0.01 Beans per Pod. + * + * If `pricingType = 1`, this field is initialized to `0` and should be ignored. + * + */ + pricePerPod: Scalars['Int']['output']; + /** + * [V2] The FIXED or DYNAMIC pricing function, encoded as bytes. + * + * This must be decoded client-side, see `LibPolynomial.sol` for more info. + * + * null = V1 FIXED = use `pricePerPod` + * "0x" = V2 FIXED = use `pricePerPod` + * "0x..." = V2 DYNAMIC = use `pricingFunction` + * + */ + pricingFunction?: Maybe; + /** + * The Pricing Type states whether this PodOrder uses FIXED or DYNAMIC pricing. + * + * null = V1 FIXED = use `pricePerPod` + * 0 = V2 FIXED = use `pricePerPod` + * 1 = V2 DYNAMIC = use `pricingFunction` + * + */ + pricingType?: Maybe; + /** Current status of order. */ + status: MarketStatus; + /** Timestamp of last PodOrder update. Changes when a PodOrder is Filled or Cancelled. */ + updatedAt: Scalars['BigInt']['output']; +}; + + +export type PodOrderFillsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PodOrderCancelled = MarketplaceEvent & { + __typename?: 'PodOrderCancelled'; + /** Account cancelling listing */ + account: Scalars['Bytes']['output']; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** podOrderCancelled-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; + /** ID of order cancelled */ + orderId: Scalars['String']['output']; +}; + +export type PodOrderCancelled_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + account?: InputMaybe; + account_contains?: InputMaybe; + account_gt?: InputMaybe; + account_gte?: InputMaybe; + account_in?: InputMaybe>; + account_lt?: InputMaybe; + account_lte?: InputMaybe; + account_not?: InputMaybe; + account_not_contains?: InputMaybe; + account_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; + orderId?: InputMaybe; + orderId_contains?: InputMaybe; + orderId_contains_nocase?: InputMaybe; + orderId_ends_with?: InputMaybe; + orderId_ends_with_nocase?: InputMaybe; + orderId_gt?: InputMaybe; + orderId_gte?: InputMaybe; + orderId_in?: InputMaybe>; + orderId_lt?: InputMaybe; + orderId_lte?: InputMaybe; + orderId_not?: InputMaybe; + orderId_not_contains?: InputMaybe; + orderId_not_contains_nocase?: InputMaybe; + orderId_not_ends_with?: InputMaybe; + orderId_not_ends_with_nocase?: InputMaybe; + orderId_not_in?: InputMaybe>; + orderId_not_starts_with?: InputMaybe; + orderId_not_starts_with_nocase?: InputMaybe; + orderId_starts_with?: InputMaybe; + orderId_starts_with_nocase?: InputMaybe; +}; + +export enum PodOrderCancelled_OrderBy { + Account = 'account', + BlockNumber = 'blockNumber', + CreatedAt = 'createdAt', + Hash = 'hash', + HistoryId = 'historyID', + Id = 'id', + LogIndex = 'logIndex', + OrderId = 'orderId' +} + +export type PodOrderCreated = MarketplaceEvent & { + __typename?: 'PodOrderCreated'; + /** Account creating the listing */ + account: Scalars['Bytes']['output']; + /** + * The represented value emitted with this event changed with BIP-29 at block 15277986 + * Pre BIP-29: The number of pods ordered is emitted + * Post BIP-29: The number of beans supplied for the order is emitted. + * + */ + amount: Scalars['BigInt']['output']; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** podOrderCreated-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; + /** Max place in line */ + maxPlaceInLine: Scalars['BigInt']['output']; + /** ID of the pod order */ + orderId: Scalars['String']['output']; + /** Price per pod */ + pricePerPod: Scalars['Int']['output']; + /** Pricing Function Data */ + pricingFunction?: Maybe; + /** Pricing Type */ + pricingType?: Maybe; +}; + +export type PodOrderCreated_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + account?: InputMaybe; + account_contains?: InputMaybe; + account_gt?: InputMaybe; + account_gte?: InputMaybe; + account_in?: InputMaybe>; + account_lt?: InputMaybe; + account_lte?: InputMaybe; + account_not?: InputMaybe; + account_not_contains?: InputMaybe; + account_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + maxPlaceInLine?: InputMaybe; + maxPlaceInLine_gt?: InputMaybe; + maxPlaceInLine_gte?: InputMaybe; + maxPlaceInLine_in?: InputMaybe>; + maxPlaceInLine_lt?: InputMaybe; + maxPlaceInLine_lte?: InputMaybe; + maxPlaceInLine_not?: InputMaybe; + maxPlaceInLine_not_in?: InputMaybe>; + or?: InputMaybe>>; + orderId?: InputMaybe; + orderId_contains?: InputMaybe; + orderId_contains_nocase?: InputMaybe; + orderId_ends_with?: InputMaybe; + orderId_ends_with_nocase?: InputMaybe; + orderId_gt?: InputMaybe; + orderId_gte?: InputMaybe; + orderId_in?: InputMaybe>; + orderId_lt?: InputMaybe; + orderId_lte?: InputMaybe; + orderId_not?: InputMaybe; + orderId_not_contains?: InputMaybe; + orderId_not_contains_nocase?: InputMaybe; + orderId_not_ends_with?: InputMaybe; + orderId_not_ends_with_nocase?: InputMaybe; + orderId_not_in?: InputMaybe>; + orderId_not_starts_with?: InputMaybe; + orderId_not_starts_with_nocase?: InputMaybe; + orderId_starts_with?: InputMaybe; + orderId_starts_with_nocase?: InputMaybe; + pricePerPod?: InputMaybe; + pricePerPod_gt?: InputMaybe; + pricePerPod_gte?: InputMaybe; + pricePerPod_in?: InputMaybe>; + pricePerPod_lt?: InputMaybe; + pricePerPod_lte?: InputMaybe; + pricePerPod_not?: InputMaybe; + pricePerPod_not_in?: InputMaybe>; + pricingFunction?: InputMaybe; + pricingFunction_contains?: InputMaybe; + pricingFunction_gt?: InputMaybe; + pricingFunction_gte?: InputMaybe; + pricingFunction_in?: InputMaybe>; + pricingFunction_lt?: InputMaybe; + pricingFunction_lte?: InputMaybe; + pricingFunction_not?: InputMaybe; + pricingFunction_not_contains?: InputMaybe; + pricingFunction_not_in?: InputMaybe>; + pricingType?: InputMaybe; + pricingType_gt?: InputMaybe; + pricingType_gte?: InputMaybe; + pricingType_in?: InputMaybe>; + pricingType_lt?: InputMaybe; + pricingType_lte?: InputMaybe; + pricingType_not?: InputMaybe; + pricingType_not_in?: InputMaybe>; +}; + +export enum PodOrderCreated_OrderBy { + Account = 'account', + Amount = 'amount', + BlockNumber = 'blockNumber', + CreatedAt = 'createdAt', + Hash = 'hash', + HistoryId = 'historyID', + Id = 'id', + LogIndex = 'logIndex', + MaxPlaceInLine = 'maxPlaceInLine', + OrderId = 'orderId', + PricePerPod = 'pricePerPod', + PricingFunction = 'pricingFunction', + PricingType = 'pricingType' +} + +export type PodOrderFilled = MarketplaceEvent & { + __typename?: 'PodOrderFilled'; + /** Number of pods transferred */ + amount: Scalars['BigInt']['output']; + /** Block number of this event */ + blockNumber: Scalars['BigInt']['output']; + /** Beans paid to fill the order */ + costInBeans?: Maybe; + /** Timestamp of this event */ + createdAt: Scalars['BigInt']['output']; + /** Account selling pods */ + fromFarmer: Scalars['Bytes']['output']; + /** Transaction hash of the transaction that emitted this event */ + hash: Scalars['Bytes']['output']; + /** Historical ID for joins */ + historyID: Scalars['String']['output']; + /** podOrderFilled-{ Transaction hash }-{ Log index } */ + id: Scalars['ID']['output']; + /** Index of the plot transferred */ + index: Scalars['BigInt']['output']; + /** Event log index. For transactions that don't emit event, create arbitrary index starting from 0 */ + logIndex: Scalars['Int']['output']; + /** Where these pods were in line when filled */ + placeInLine: Scalars['BigInt']['output']; + /** Start of the plot transferred */ + start: Scalars['BigInt']['output']; + /** Account buying pods */ + toFarmer: Scalars['Bytes']['output']; +}; + +export type PodOrderFilled_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + costInBeans?: InputMaybe; + costInBeans_gt?: InputMaybe; + costInBeans_gte?: InputMaybe; + costInBeans_in?: InputMaybe>; + costInBeans_lt?: InputMaybe; + costInBeans_lte?: InputMaybe; + costInBeans_not?: InputMaybe; + costInBeans_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + fromFarmer?: InputMaybe; + fromFarmer_contains?: InputMaybe; + fromFarmer_gt?: InputMaybe; + fromFarmer_gte?: InputMaybe; + fromFarmer_in?: InputMaybe>; + fromFarmer_lt?: InputMaybe; + fromFarmer_lte?: InputMaybe; + fromFarmer_not?: InputMaybe; + fromFarmer_not_contains?: InputMaybe; + fromFarmer_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_gt?: InputMaybe; + hash_gte?: InputMaybe; + hash_in?: InputMaybe>; + hash_lt?: InputMaybe; + hash_lte?: InputMaybe; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; + placeInLine?: InputMaybe; + placeInLine_gt?: InputMaybe; + placeInLine_gte?: InputMaybe; + placeInLine_in?: InputMaybe>; + placeInLine_lt?: InputMaybe; + placeInLine_lte?: InputMaybe; + placeInLine_not?: InputMaybe; + placeInLine_not_in?: InputMaybe>; + start?: InputMaybe; + start_gt?: InputMaybe; + start_gte?: InputMaybe; + start_in?: InputMaybe>; + start_lt?: InputMaybe; + start_lte?: InputMaybe; + start_not?: InputMaybe; + start_not_in?: InputMaybe>; + toFarmer?: InputMaybe; + toFarmer_contains?: InputMaybe; + toFarmer_gt?: InputMaybe; + toFarmer_gte?: InputMaybe; + toFarmer_in?: InputMaybe>; + toFarmer_lt?: InputMaybe; + toFarmer_lte?: InputMaybe; + toFarmer_not?: InputMaybe; + toFarmer_not_contains?: InputMaybe; + toFarmer_not_in?: InputMaybe>; +}; + +export enum PodOrderFilled_OrderBy { + Amount = 'amount', + BlockNumber = 'blockNumber', + CostInBeans = 'costInBeans', + CreatedAt = 'createdAt', + FromFarmer = 'fromFarmer', + Hash = 'hash', + HistoryId = 'historyID', + Id = 'id', + Index = 'index', + LogIndex = 'logIndex', + PlaceInLine = 'placeInLine', + Start = 'start', + ToFarmer = 'toFarmer' +} + +export type PodOrder_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beanAmount?: InputMaybe; + beanAmountFilled?: InputMaybe; + beanAmountFilled_gt?: InputMaybe; + beanAmountFilled_gte?: InputMaybe; + beanAmountFilled_in?: InputMaybe>; + beanAmountFilled_lt?: InputMaybe; + beanAmountFilled_lte?: InputMaybe; + beanAmountFilled_not?: InputMaybe; + beanAmountFilled_not_in?: InputMaybe>; + beanAmount_gt?: InputMaybe; + beanAmount_gte?: InputMaybe; + beanAmount_in?: InputMaybe>; + beanAmount_lt?: InputMaybe; + beanAmount_lte?: InputMaybe; + beanAmount_not?: InputMaybe; + beanAmount_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + creationHash?: InputMaybe; + creationHash_contains?: InputMaybe; + creationHash_gt?: InputMaybe; + creationHash_gte?: InputMaybe; + creationHash_in?: InputMaybe>; + creationHash_lt?: InputMaybe; + creationHash_lte?: InputMaybe; + creationHash_not?: InputMaybe; + creationHash_not_contains?: InputMaybe; + creationHash_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + fills?: InputMaybe>; + fills_?: InputMaybe; + fills_contains?: InputMaybe>; + fills_contains_nocase?: InputMaybe>; + fills_not?: InputMaybe>; + fills_not_contains?: InputMaybe>; + fills_not_contains_nocase?: InputMaybe>; + historyID?: InputMaybe; + historyID_contains?: InputMaybe; + historyID_contains_nocase?: InputMaybe; + historyID_ends_with?: InputMaybe; + historyID_ends_with_nocase?: InputMaybe; + historyID_gt?: InputMaybe; + historyID_gte?: InputMaybe; + historyID_in?: InputMaybe>; + historyID_lt?: InputMaybe; + historyID_lte?: InputMaybe; + historyID_not?: InputMaybe; + historyID_not_contains?: InputMaybe; + historyID_not_contains_nocase?: InputMaybe; + historyID_not_ends_with?: InputMaybe; + historyID_not_ends_with_nocase?: InputMaybe; + historyID_not_in?: InputMaybe>; + historyID_not_starts_with?: InputMaybe; + historyID_not_starts_with_nocase?: InputMaybe; + historyID_starts_with?: InputMaybe; + historyID_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + maxPlaceInLine?: InputMaybe; + maxPlaceInLine_gt?: InputMaybe; + maxPlaceInLine_gte?: InputMaybe; + maxPlaceInLine_in?: InputMaybe>; + maxPlaceInLine_lt?: InputMaybe; + maxPlaceInLine_lte?: InputMaybe; + maxPlaceInLine_not?: InputMaybe; + maxPlaceInLine_not_in?: InputMaybe>; + minFillAmount?: InputMaybe; + minFillAmount_gt?: InputMaybe; + minFillAmount_gte?: InputMaybe; + minFillAmount_in?: InputMaybe>; + minFillAmount_lt?: InputMaybe; + minFillAmount_lte?: InputMaybe; + minFillAmount_not?: InputMaybe; + minFillAmount_not_in?: InputMaybe>; + or?: InputMaybe>>; + podAmountFilled?: InputMaybe; + podAmountFilled_gt?: InputMaybe; + podAmountFilled_gte?: InputMaybe; + podAmountFilled_in?: InputMaybe>; + podAmountFilled_lt?: InputMaybe; + podAmountFilled_lte?: InputMaybe; + podAmountFilled_not?: InputMaybe; + podAmountFilled_not_in?: InputMaybe>; + podMarketplace?: InputMaybe; + podMarketplace_?: InputMaybe; + podMarketplace_contains?: InputMaybe; + podMarketplace_contains_nocase?: InputMaybe; + podMarketplace_ends_with?: InputMaybe; + podMarketplace_ends_with_nocase?: InputMaybe; + podMarketplace_gt?: InputMaybe; + podMarketplace_gte?: InputMaybe; + podMarketplace_in?: InputMaybe>; + podMarketplace_lt?: InputMaybe; + podMarketplace_lte?: InputMaybe; + podMarketplace_not?: InputMaybe; + podMarketplace_not_contains?: InputMaybe; + podMarketplace_not_contains_nocase?: InputMaybe; + podMarketplace_not_ends_with?: InputMaybe; + podMarketplace_not_ends_with_nocase?: InputMaybe; + podMarketplace_not_in?: InputMaybe>; + podMarketplace_not_starts_with?: InputMaybe; + podMarketplace_not_starts_with_nocase?: InputMaybe; + podMarketplace_starts_with?: InputMaybe; + podMarketplace_starts_with_nocase?: InputMaybe; + pricePerPod?: InputMaybe; + pricePerPod_gt?: InputMaybe; + pricePerPod_gte?: InputMaybe; + pricePerPod_in?: InputMaybe>; + pricePerPod_lt?: InputMaybe; + pricePerPod_lte?: InputMaybe; + pricePerPod_not?: InputMaybe; + pricePerPod_not_in?: InputMaybe>; + pricingFunction?: InputMaybe; + pricingFunction_contains?: InputMaybe; + pricingFunction_gt?: InputMaybe; + pricingFunction_gte?: InputMaybe; + pricingFunction_in?: InputMaybe>; + pricingFunction_lt?: InputMaybe; + pricingFunction_lte?: InputMaybe; + pricingFunction_not?: InputMaybe; + pricingFunction_not_contains?: InputMaybe; + pricingFunction_not_in?: InputMaybe>; + pricingType?: InputMaybe; + pricingType_gt?: InputMaybe; + pricingType_gte?: InputMaybe; + pricingType_in?: InputMaybe>; + pricingType_lt?: InputMaybe; + pricingType_lte?: InputMaybe; + pricingType_not?: InputMaybe; + pricingType_not_in?: InputMaybe>; + status?: InputMaybe; + status_in?: InputMaybe>; + status_not?: InputMaybe; + status_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum PodOrder_OrderBy { + BeanAmount = 'beanAmount', + BeanAmountFilled = 'beanAmountFilled', + CreatedAt = 'createdAt', + CreationHash = 'creationHash', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Fills = 'fills', + HistoryId = 'historyID', + Id = 'id', + MaxPlaceInLine = 'maxPlaceInLine', + MinFillAmount = 'minFillAmount', + PodAmountFilled = 'podAmountFilled', + PodMarketplace = 'podMarketplace', + PodMarketplaceAvailableListedPods = 'podMarketplace__availableListedPods', + PodMarketplaceAvailableOrderBeans = 'podMarketplace__availableOrderBeans', + PodMarketplaceBeanVolume = 'podMarketplace__beanVolume', + PodMarketplaceCancelledListedPods = 'podMarketplace__cancelledListedPods', + PodMarketplaceCancelledOrderBeans = 'podMarketplace__cancelledOrderBeans', + PodMarketplaceExpiredListedPods = 'podMarketplace__expiredListedPods', + PodMarketplaceFilledListedPods = 'podMarketplace__filledListedPods', + PodMarketplaceFilledOrderBeans = 'podMarketplace__filledOrderBeans', + PodMarketplaceFilledOrderedPods = 'podMarketplace__filledOrderedPods', + PodMarketplaceId = 'podMarketplace__id', + PodMarketplaceLastDailySnapshotDay = 'podMarketplace__lastDailySnapshotDay', + PodMarketplaceLastHourlySnapshotSeason = 'podMarketplace__lastHourlySnapshotSeason', + PodMarketplaceListedPods = 'podMarketplace__listedPods', + PodMarketplaceOrderBeans = 'podMarketplace__orderBeans', + PodMarketplacePodVolume = 'podMarketplace__podVolume', + PodMarketplaceSeason = 'podMarketplace__season', + PricePerPod = 'pricePerPod', + PricingFunction = 'pricingFunction', + PricingType = 'pricingType', + Status = 'status', + UpdatedAt = 'updatedAt' +} + +export type PrevFarmerGerminatingEvent = { + __typename?: 'PrevFarmerGerminatingEvent'; + /** The value for `deltaGerminatingStalk` from this previous `FarmerGerminatingStalkBalanceChanged` event. */ + deltaGerminatingStalk: Scalars['BigInt']['output']; + /** The `block.number` of the `FarmerGerminatingStalkBalanceChanged` event */ + eventBlock: Scalars['BigInt']['output']; + /** Farmer address */ + id: Scalars['Bytes']['output']; + /** The `logIndex` of the `FarmerGerminatingStalkBalanceChanged` event */ + logIndex: Scalars['BigInt']['output']; +}; + +export type PrevFarmerGerminatingEvent_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + deltaGerminatingStalk?: InputMaybe; + deltaGerminatingStalk_gt?: InputMaybe; + deltaGerminatingStalk_gte?: InputMaybe; + deltaGerminatingStalk_in?: InputMaybe>; + deltaGerminatingStalk_lt?: InputMaybe; + deltaGerminatingStalk_lte?: InputMaybe; + deltaGerminatingStalk_not?: InputMaybe; + deltaGerminatingStalk_not_in?: InputMaybe>; + eventBlock?: InputMaybe; + eventBlock_gt?: InputMaybe; + eventBlock_gte?: InputMaybe; + eventBlock_in?: InputMaybe>; + eventBlock_lt?: InputMaybe; + eventBlock_lte?: InputMaybe; + eventBlock_not?: InputMaybe; + eventBlock_not_in?: InputMaybe>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + or?: InputMaybe>>; +}; + +export enum PrevFarmerGerminatingEvent_OrderBy { + DeltaGerminatingStalk = 'deltaGerminatingStalk', + EventBlock = 'eventBlock', + Id = 'id', + LogIndex = 'logIndex' +} + +export type Query = { + __typename?: 'Query'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + beanstalk?: Maybe; + beanstalks: Array; + chop?: Maybe; + chops: Array; + farmer?: Maybe; + farmers: Array; + fertilizer?: Maybe; + fertilizerBalance?: Maybe; + fertilizerBalances: Array; + fertilizerToken?: Maybe; + fertilizerTokens: Array; + fertilizerYield?: Maybe; + fertilizerYields: Array; + fertilizers: Array; + field?: Maybe; + fieldDailySnapshot?: Maybe; + fieldDailySnapshots: Array; + fieldHourlySnapshot?: Maybe; + fieldHourlySnapshots: Array; + fields: Array; + gaugesInfo?: Maybe; + gaugesInfoDailySnapshot?: Maybe; + gaugesInfoDailySnapshots: Array; + gaugesInfoHourlySnapshot?: Maybe; + gaugesInfoHourlySnapshots: Array; + gaugesInfos: Array; + germinating?: Maybe; + germinatings: Array; + marketPerformanceSeasonal?: Maybe; + marketPerformanceSeasonals: Array; + marketplaceEvent?: Maybe; + marketplaceEvents: Array; + plot?: Maybe; + plots: Array; + podFill?: Maybe; + podFills: Array; + podListing?: Maybe; + podListingCancelled?: Maybe; + podListingCancelleds: Array; + podListingCreated?: Maybe; + podListingCreateds: Array; + podListingFilled?: Maybe; + podListingFilleds: Array; + podListings: Array; + podMarketplace?: Maybe; + podMarketplaceDailySnapshot?: Maybe; + podMarketplaceDailySnapshots: Array; + podMarketplaceHourlySnapshot?: Maybe; + podMarketplaceHourlySnapshots: Array; + podMarketplaces: Array; + podOrder?: Maybe; + podOrderCancelled?: Maybe; + podOrderCancelleds: Array; + podOrderCreated?: Maybe; + podOrderCreateds: Array; + podOrderFilled?: Maybe; + podOrderFilleds: Array; + podOrders: Array; + prevFarmerGerminatingEvent?: Maybe; + prevFarmerGerminatingEvents: Array; + season?: Maybe; + seasons: Array; + silo?: Maybe; + siloAsset?: Maybe; + siloAssetDailySnapshot?: Maybe; + siloAssetDailySnapshots: Array; + siloAssetHourlySnapshot?: Maybe; + siloAssetHourlySnapshots: Array; + siloAssets: Array; + siloDailySnapshot?: Maybe; + siloDailySnapshots: Array; + siloDeposit?: Maybe; + siloDeposits: Array; + siloHourlySnapshot?: Maybe; + siloHourlySnapshots: Array; + siloWithdraw?: Maybe; + siloWithdraws: Array; + siloYield?: Maybe; + siloYields: Array; + silos: Array; + tokenYield?: Maybe; + tokenYields: Array; + tractor?: Maybe; + tractorDailySnapshot?: Maybe; + tractorDailySnapshots: Array; + tractorHourlySnapshot?: Maybe; + tractorHourlySnapshots: Array; + tractorReward?: Maybe; + tractorRewards: Array; + tractors: Array; + unripeToken?: Maybe; + unripeTokenDailySnapshot?: Maybe; + unripeTokenDailySnapshots: Array; + unripeTokenHourlySnapshot?: Maybe; + unripeTokenHourlySnapshots: Array; + unripeTokens: Array; + version?: Maybe; + versions: Array; + wellPlenties: Array; + wellPlenty?: Maybe; + whitelistTokenDailySnapshot?: Maybe; + whitelistTokenDailySnapshots: Array; + whitelistTokenHourlySnapshot?: Maybe; + whitelistTokenHourlySnapshots: Array; + whitelistTokenSetting?: Maybe; + whitelistTokenSettings: Array; + wrappedDepositERC20?: Maybe; + wrappedDepositERC20DailySnapshot?: Maybe; + wrappedDepositERC20DailySnapshots: Array; + wrappedDepositERC20HourlySnapshot?: Maybe; + wrappedDepositERC20HourlySnapshots: Array; + wrappedDepositERC20S: Array; +}; + + +export type Query_MetaArgs = { + block?: InputMaybe; +}; + + +export type QueryBeanstalkArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBeanstalksArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryChopArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryChopsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFarmerArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFarmersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFertilizerArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFertilizerBalanceArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFertilizerBalancesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFertilizerTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFertilizerTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFertilizerYieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFertilizerYieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFertilizersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFieldDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFieldDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFieldHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFieldHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryGaugesInfoArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryGaugesInfoDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryGaugesInfoDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryGaugesInfoHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryGaugesInfoHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryGaugesInfosArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryGerminatingArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryGerminatingsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryMarketPerformanceSeasonalArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryMarketPerformanceSeasonalsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryMarketplaceEventArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryMarketplaceEventsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPlotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPlotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodFillArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodFillsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodListingArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodListingCancelledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodListingCancelledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodListingCreatedArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodListingCreatedsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodListingFilledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodListingFilledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodListingsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodMarketplaceArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodMarketplaceDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodMarketplaceDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodMarketplaceHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodMarketplaceHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodMarketplacesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodOrderArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodOrderCancelledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodOrderCancelledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodOrderCreatedArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodOrderCreatedsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodOrderFilledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPodOrderFilledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPodOrdersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPrevFarmerGerminatingEventArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPrevFarmerGerminatingEventsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySeasonArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySeasonsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloAssetArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloAssetDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloAssetDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloAssetHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloAssetHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloAssetsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloDepositArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloDepositsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloWithdrawArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloWithdrawsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySiloYieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySiloYieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySilosArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokenYieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenYieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTractorArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTractorDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTractorDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTractorHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTractorHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTractorRewardArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTractorRewardsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTractorsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryUnripeTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryUnripeTokenDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryUnripeTokenDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryUnripeTokenHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryUnripeTokenHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryUnripeTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryVersionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryVersionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellPlentiesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWellPlentyArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWhitelistTokenDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWhitelistTokenDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWhitelistTokenHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWhitelistTokenHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWhitelistTokenSettingArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWhitelistTokenSettingsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWrappedDepositErc20Args = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWrappedDepositErc20DailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWrappedDepositErc20DailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWrappedDepositErc20HourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryWrappedDepositErc20HourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryWrappedDepositErc20SArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Season = { + __typename?: 'Season'; + /** Total Bean supply */ + beans: Scalars['BigInt']['output']; + /** 'beanstalk' */ + beanstalk: Beanstalk; + /** Block timestamp when sunrise was called */ + createdAt: Scalars['BigInt']['output']; + /** Time weighted deltaB */ + deltaB: Scalars['BigInt']['output']; + /** Delta of beans */ + deltaBeans: Scalars['BigInt']['output']; + /** Amount of beans minted to the Field due to the flood */ + floodFieldBeans: Scalars['BigInt']['output']; + /** Amount of beans minted to the Silo due to the flood */ + floodSiloBeans: Scalars['BigInt']['output']; + /** Season Number */ + id: Scalars['ID']['output']; + /** Amount of Beans paid to sunrise caller */ + incentiveBeans: Scalars['BigInt']['output']; + /** Bean Market Cap */ + marketCap: Scalars['BigDecimal']['output']; + /** Price of BEAN during sunrise */ + price: Scalars['BigDecimal']['output']; + /** Boolean indicating whether the system is currently raining */ + raining: Scalars['Boolean']['output']; + /** Amount of Beans minted during sunrise from TWA. Does not include flood mints */ + rewardBeans: Scalars['BigInt']['output']; + /** Season number in Int form for sorting */ + season: Scalars['Int']['output']; + /** Block in which the season start was triggered by the sunrise call */ + sunriseBlock: Scalars['BigInt']['output']; + /** Beans from L1 which have not migrated yet */ + unmigratedL1Beans?: Maybe; +}; + +export type Season_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beans?: InputMaybe; + beans_gt?: InputMaybe; + beans_gte?: InputMaybe; + beans_in?: InputMaybe>; + beans_lt?: InputMaybe; + beans_lte?: InputMaybe; + beans_not?: InputMaybe; + beans_not_in?: InputMaybe>; + beanstalk?: InputMaybe; + beanstalk_?: InputMaybe; + beanstalk_contains?: InputMaybe; + beanstalk_contains_nocase?: InputMaybe; + beanstalk_ends_with?: InputMaybe; + beanstalk_ends_with_nocase?: InputMaybe; + beanstalk_gt?: InputMaybe; + beanstalk_gte?: InputMaybe; + beanstalk_in?: InputMaybe>; + beanstalk_lt?: InputMaybe; + beanstalk_lte?: InputMaybe; + beanstalk_not?: InputMaybe; + beanstalk_not_contains?: InputMaybe; + beanstalk_not_contains_nocase?: InputMaybe; + beanstalk_not_ends_with?: InputMaybe; + beanstalk_not_ends_with_nocase?: InputMaybe; + beanstalk_not_in?: InputMaybe>; + beanstalk_not_starts_with?: InputMaybe; + beanstalk_not_starts_with_nocase?: InputMaybe; + beanstalk_starts_with?: InputMaybe; + beanstalk_starts_with_nocase?: InputMaybe; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaB?: InputMaybe; + deltaB_gt?: InputMaybe; + deltaB_gte?: InputMaybe; + deltaB_in?: InputMaybe>; + deltaB_lt?: InputMaybe; + deltaB_lte?: InputMaybe; + deltaB_not?: InputMaybe; + deltaB_not_in?: InputMaybe>; + deltaBeans?: InputMaybe; + deltaBeans_gt?: InputMaybe; + deltaBeans_gte?: InputMaybe; + deltaBeans_in?: InputMaybe>; + deltaBeans_lt?: InputMaybe; + deltaBeans_lte?: InputMaybe; + deltaBeans_not?: InputMaybe; + deltaBeans_not_in?: InputMaybe>; + floodFieldBeans?: InputMaybe; + floodFieldBeans_gt?: InputMaybe; + floodFieldBeans_gte?: InputMaybe; + floodFieldBeans_in?: InputMaybe>; + floodFieldBeans_lt?: InputMaybe; + floodFieldBeans_lte?: InputMaybe; + floodFieldBeans_not?: InputMaybe; + floodFieldBeans_not_in?: InputMaybe>; + floodSiloBeans?: InputMaybe; + floodSiloBeans_gt?: InputMaybe; + floodSiloBeans_gte?: InputMaybe; + floodSiloBeans_in?: InputMaybe>; + floodSiloBeans_lt?: InputMaybe; + floodSiloBeans_lte?: InputMaybe; + floodSiloBeans_not?: InputMaybe; + floodSiloBeans_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + incentiveBeans?: InputMaybe; + incentiveBeans_gt?: InputMaybe; + incentiveBeans_gte?: InputMaybe; + incentiveBeans_in?: InputMaybe>; + incentiveBeans_lt?: InputMaybe; + incentiveBeans_lte?: InputMaybe; + incentiveBeans_not?: InputMaybe; + incentiveBeans_not_in?: InputMaybe>; + marketCap?: InputMaybe; + marketCap_gt?: InputMaybe; + marketCap_gte?: InputMaybe; + marketCap_in?: InputMaybe>; + marketCap_lt?: InputMaybe; + marketCap_lte?: InputMaybe; + marketCap_not?: InputMaybe; + marketCap_not_in?: InputMaybe>; + or?: InputMaybe>>; + price?: InputMaybe; + price_gt?: InputMaybe; + price_gte?: InputMaybe; + price_in?: InputMaybe>; + price_lt?: InputMaybe; + price_lte?: InputMaybe; + price_not?: InputMaybe; + price_not_in?: InputMaybe>; + raining?: InputMaybe; + raining_in?: InputMaybe>; + raining_not?: InputMaybe; + raining_not_in?: InputMaybe>; + rewardBeans?: InputMaybe; + rewardBeans_gt?: InputMaybe; + rewardBeans_gte?: InputMaybe; + rewardBeans_in?: InputMaybe>; + rewardBeans_lt?: InputMaybe; + rewardBeans_lte?: InputMaybe; + rewardBeans_not?: InputMaybe; + rewardBeans_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + sunriseBlock?: InputMaybe; + sunriseBlock_gt?: InputMaybe; + sunriseBlock_gte?: InputMaybe; + sunriseBlock_in?: InputMaybe>; + sunriseBlock_lt?: InputMaybe; + sunriseBlock_lte?: InputMaybe; + sunriseBlock_not?: InputMaybe; + sunriseBlock_not_in?: InputMaybe>; + unmigratedL1Beans?: InputMaybe; + unmigratedL1Beans_gt?: InputMaybe; + unmigratedL1Beans_gte?: InputMaybe; + unmigratedL1Beans_in?: InputMaybe>; + unmigratedL1Beans_lt?: InputMaybe; + unmigratedL1Beans_lte?: InputMaybe; + unmigratedL1Beans_not?: InputMaybe; + unmigratedL1Beans_not_in?: InputMaybe>; +}; + +export enum Season_OrderBy { + Beans = 'beans', + Beanstalk = 'beanstalk', + BeanstalkFertilizer1155 = 'beanstalk__fertilizer1155', + BeanstalkId = 'beanstalk__id', + BeanstalkLastSeason = 'beanstalk__lastSeason', + BeanstalkToken = 'beanstalk__token', + CreatedAt = 'createdAt', + DeltaB = 'deltaB', + DeltaBeans = 'deltaBeans', + FloodFieldBeans = 'floodFieldBeans', + FloodSiloBeans = 'floodSiloBeans', + Id = 'id', + IncentiveBeans = 'incentiveBeans', + MarketCap = 'marketCap', + Price = 'price', + Raining = 'raining', + RewardBeans = 'rewardBeans', + Season = 'season', + SunriseBlock = 'sunriseBlock', + UnmigratedL1Beans = 'unmigratedL1Beans' +} + +export type Silo = { + __typename?: 'Silo'; + /** (protocol) Current number of active farmers deposited in the silo */ + activeFarmers: Scalars['Int']['output']; + /** (protocol) Tokens in the order they were whitelisted for deposit. This list never shrinks. */ + allWhitelistedTokens: Array; + /** Link to all silo assets currently associated with this silo */ + assets: Array; + /** Average convert down penalty that has been assessed, in percent */ + avgConvertDownPenalty: Scalars['BigDecimal']['output']; + /** (protocol) Value emitted by UpdateAverageStalkPerBdvPerSeason event */ + avgGrownStalkPerBdvPerSeason: Scalars['BigInt']['output']; + /** (protocol) Cumulative total for bean mints sent to the silo */ + beanMints: Scalars['BigInt']['output']; + /** (protocol) [Seed Gauge] Current target ratio of Bean to LP deposits */ + beanToMaxLpGpPerBdvRatio: Scalars['BigInt']['output']; + /** 'beanstalk' */ + beanstalk: Beanstalk; + /** Total grown stalk gained via the Convert Up Bonus */ + bonusStalkConvertUp: Scalars['BigInt']['output']; + /** (protocol) PI-7 Convert down penalty */ + convertDownPenalty?: Maybe; + /** (protocol) [Seed Gauge] Measures the difference in seeds of Bean and the max LP; can be derived from beanToMaxLpGpPerBdvRatio */ + cropRatio: Scalars['BigDecimal']['output']; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Current BDV of all deposited assets */ + depositedBDV: Scalars['BigInt']['output']; + /** (protocol) Tokens that have been removed from the silo deposit whitelist */ + dewhitelistedTokens: Array; + /** Farmer address if applicable */ + farmer?: Maybe; + /** [Seed Gauge] Stalk that is currently Germinating */ + germinatingStalk: Scalars['BigInt']['output']; + /** (protocol) Current grown stalk per season according to avgGrownStalkPerBdvPerSeason */ + grownStalkPerSeason: Scalars['BigInt']['output']; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Address for the farmer or Beanstalk contract */ + id: Scalars['Bytes']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** (protocol) Market performance for each season */ + marketPerformanceSeasonals: Array; + /** Total stalk amount that has been penalized by the convert down penalty */ + penalizedStalkConvertDown: Scalars['BigInt']['output']; + /** (protocol) Current plantable stalk for bean seigniorage not yet claimed */ + plantableStalk: Scalars['BigInt']['output']; + /** Cumulative total of beans that have been Planted */ + plantedBeans: Scalars['BigInt']['output']; + /** Current roots balance */ + roots: Scalars['BigInt']['output']; + /** Current stalk balance */ + stalk: Scalars['BigInt']['output']; + /** Total BDV converted up regardless of receiving a bonus. (!) This value accumulates only when the Convert Up Bonus (gauge id 2) is active. */ + totalBdvConvertUp: Scalars['BigInt']['output']; + /** Total BDV converted up that was awarded the bonus */ + totalBdvConvertUpBonus: Scalars['BigInt']['output']; + /** (protocol) Deposited BDV from L1 which has not migrated yet */ + unmigratedL1DepositedBdv?: Maybe; + /** Total amount of stalk that was not penalized during the application of a down convert penalty. Needed to compute the avg penalty rate */ + unpenalizedStalkConvertDown: Scalars['BigInt']['output']; + /** (protocol) Tokens whitelisted for deposit within the silo */ + whitelistedTokens: Array; +}; + + +export type SiloAssetsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SiloDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SiloHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SiloMarketPerformanceSeasonalsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type SiloAsset = { + __typename?: 'SiloAsset'; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Current Token amount of deposits */ + depositedAmount: Scalars['BigInt']['output']; + /** Current BDV of deposits */ + depositedBDV: Scalars['BigInt']['output']; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Silo ID - Asset Token Address */ + id: Scalars['ID']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Silo for this asset */ + silo: Silo; + /** Token address for this asset */ + token: Scalars['Bytes']['output']; + /** Current Token amount of silo withdrawals */ + withdrawnAmount: Scalars['BigInt']['output']; +}; + + +export type SiloAssetDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type SiloAssetHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type SiloAssetDailySnapshot = { + __typename?: 'SiloAssetDailySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaDepositedAmount: Scalars['BigInt']['output']; + deltaDepositedBDV: Scalars['BigInt']['output']; + deltaWithdrawnAmount: Scalars['BigInt']['output']; + /** Point in time current Token amount of deposits */ + depositedAmount: Scalars['BigInt']['output']; + /** Point in time current BDV of deposits */ + depositedBDV: Scalars['BigInt']['output']; + /** Silo Asset ID - Day */ + id: Scalars['ID']['output']; + /** Last season for the snapshot */ + season: Scalars['Int']['output']; + /** Silo asset associated with this snapshot */ + siloAsset: SiloAsset; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; + /** Point in time current Token amount of silo withdrawals */ + withdrawnAmount: Scalars['BigInt']['output']; +}; + +export type SiloAssetDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaDepositedAmount?: InputMaybe; + deltaDepositedAmount_gt?: InputMaybe; + deltaDepositedAmount_gte?: InputMaybe; + deltaDepositedAmount_in?: InputMaybe>; + deltaDepositedAmount_lt?: InputMaybe; + deltaDepositedAmount_lte?: InputMaybe; + deltaDepositedAmount_not?: InputMaybe; + deltaDepositedAmount_not_in?: InputMaybe>; + deltaDepositedBDV?: InputMaybe; + deltaDepositedBDV_gt?: InputMaybe; + deltaDepositedBDV_gte?: InputMaybe; + deltaDepositedBDV_in?: InputMaybe>; + deltaDepositedBDV_lt?: InputMaybe; + deltaDepositedBDV_lte?: InputMaybe; + deltaDepositedBDV_not?: InputMaybe; + deltaDepositedBDV_not_in?: InputMaybe>; + deltaWithdrawnAmount?: InputMaybe; + deltaWithdrawnAmount_gt?: InputMaybe; + deltaWithdrawnAmount_gte?: InputMaybe; + deltaWithdrawnAmount_in?: InputMaybe>; + deltaWithdrawnAmount_lt?: InputMaybe; + deltaWithdrawnAmount_lte?: InputMaybe; + deltaWithdrawnAmount_not?: InputMaybe; + deltaWithdrawnAmount_not_in?: InputMaybe>; + depositedAmount?: InputMaybe; + depositedAmount_gt?: InputMaybe; + depositedAmount_gte?: InputMaybe; + depositedAmount_in?: InputMaybe>; + depositedAmount_lt?: InputMaybe; + depositedAmount_lte?: InputMaybe; + depositedAmount_not?: InputMaybe; + depositedAmount_not_in?: InputMaybe>; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + siloAsset?: InputMaybe; + siloAsset_?: InputMaybe; + siloAsset_contains?: InputMaybe; + siloAsset_contains_nocase?: InputMaybe; + siloAsset_ends_with?: InputMaybe; + siloAsset_ends_with_nocase?: InputMaybe; + siloAsset_gt?: InputMaybe; + siloAsset_gte?: InputMaybe; + siloAsset_in?: InputMaybe>; + siloAsset_lt?: InputMaybe; + siloAsset_lte?: InputMaybe; + siloAsset_not?: InputMaybe; + siloAsset_not_contains?: InputMaybe; + siloAsset_not_contains_nocase?: InputMaybe; + siloAsset_not_ends_with?: InputMaybe; + siloAsset_not_ends_with_nocase?: InputMaybe; + siloAsset_not_in?: InputMaybe>; + siloAsset_not_starts_with?: InputMaybe; + siloAsset_not_starts_with_nocase?: InputMaybe; + siloAsset_starts_with?: InputMaybe; + siloAsset_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; + withdrawnAmount?: InputMaybe; + withdrawnAmount_gt?: InputMaybe; + withdrawnAmount_gte?: InputMaybe; + withdrawnAmount_in?: InputMaybe>; + withdrawnAmount_lt?: InputMaybe; + withdrawnAmount_lte?: InputMaybe; + withdrawnAmount_not?: InputMaybe; + withdrawnAmount_not_in?: InputMaybe>; +}; + +export enum SiloAssetDailySnapshot_OrderBy { + CreatedAt = 'createdAt', + DeltaDepositedAmount = 'deltaDepositedAmount', + DeltaDepositedBdv = 'deltaDepositedBDV', + DeltaWithdrawnAmount = 'deltaWithdrawnAmount', + DepositedAmount = 'depositedAmount', + DepositedBdv = 'depositedBDV', + Id = 'id', + Season = 'season', + SiloAsset = 'siloAsset', + SiloAssetDepositedAmount = 'siloAsset__depositedAmount', + SiloAssetDepositedBdv = 'siloAsset__depositedBDV', + SiloAssetId = 'siloAsset__id', + SiloAssetLastDailySnapshotDay = 'siloAsset__lastDailySnapshotDay', + SiloAssetLastHourlySnapshotSeason = 'siloAsset__lastHourlySnapshotSeason', + SiloAssetToken = 'siloAsset__token', + SiloAssetWithdrawnAmount = 'siloAsset__withdrawnAmount', + UpdatedAt = 'updatedAt', + WithdrawnAmount = 'withdrawnAmount' +} + +export type SiloAssetHourlySnapshot = { + __typename?: 'SiloAssetHourlySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaDepositedAmount: Scalars['BigInt']['output']; + deltaDepositedBDV: Scalars['BigInt']['output']; + deltaWithdrawnAmount: Scalars['BigInt']['output']; + /** Point in time current Token amount of deposits */ + depositedAmount: Scalars['BigInt']['output']; + /** Point in time current BDV of deposits */ + depositedBDV: Scalars['BigInt']['output']; + /** Silo Asset ID - Season */ + id: Scalars['ID']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Silo asset associated with this snapshot */ + siloAsset: SiloAsset; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; + /** Point in time current Token amount of silo withdrawals */ + withdrawnAmount: Scalars['BigInt']['output']; +}; + +export type SiloAssetHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaDepositedAmount?: InputMaybe; + deltaDepositedAmount_gt?: InputMaybe; + deltaDepositedAmount_gte?: InputMaybe; + deltaDepositedAmount_in?: InputMaybe>; + deltaDepositedAmount_lt?: InputMaybe; + deltaDepositedAmount_lte?: InputMaybe; + deltaDepositedAmount_not?: InputMaybe; + deltaDepositedAmount_not_in?: InputMaybe>; + deltaDepositedBDV?: InputMaybe; + deltaDepositedBDV_gt?: InputMaybe; + deltaDepositedBDV_gte?: InputMaybe; + deltaDepositedBDV_in?: InputMaybe>; + deltaDepositedBDV_lt?: InputMaybe; + deltaDepositedBDV_lte?: InputMaybe; + deltaDepositedBDV_not?: InputMaybe; + deltaDepositedBDV_not_in?: InputMaybe>; + deltaWithdrawnAmount?: InputMaybe; + deltaWithdrawnAmount_gt?: InputMaybe; + deltaWithdrawnAmount_gte?: InputMaybe; + deltaWithdrawnAmount_in?: InputMaybe>; + deltaWithdrawnAmount_lt?: InputMaybe; + deltaWithdrawnAmount_lte?: InputMaybe; + deltaWithdrawnAmount_not?: InputMaybe; + deltaWithdrawnAmount_not_in?: InputMaybe>; + depositedAmount?: InputMaybe; + depositedAmount_gt?: InputMaybe; + depositedAmount_gte?: InputMaybe; + depositedAmount_in?: InputMaybe>; + depositedAmount_lt?: InputMaybe; + depositedAmount_lte?: InputMaybe; + depositedAmount_not?: InputMaybe; + depositedAmount_not_in?: InputMaybe>; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + siloAsset?: InputMaybe; + siloAsset_?: InputMaybe; + siloAsset_contains?: InputMaybe; + siloAsset_contains_nocase?: InputMaybe; + siloAsset_ends_with?: InputMaybe; + siloAsset_ends_with_nocase?: InputMaybe; + siloAsset_gt?: InputMaybe; + siloAsset_gte?: InputMaybe; + siloAsset_in?: InputMaybe>; + siloAsset_lt?: InputMaybe; + siloAsset_lte?: InputMaybe; + siloAsset_not?: InputMaybe; + siloAsset_not_contains?: InputMaybe; + siloAsset_not_contains_nocase?: InputMaybe; + siloAsset_not_ends_with?: InputMaybe; + siloAsset_not_ends_with_nocase?: InputMaybe; + siloAsset_not_in?: InputMaybe>; + siloAsset_not_starts_with?: InputMaybe; + siloAsset_not_starts_with_nocase?: InputMaybe; + siloAsset_starts_with?: InputMaybe; + siloAsset_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; + withdrawnAmount?: InputMaybe; + withdrawnAmount_gt?: InputMaybe; + withdrawnAmount_gte?: InputMaybe; + withdrawnAmount_in?: InputMaybe>; + withdrawnAmount_lt?: InputMaybe; + withdrawnAmount_lte?: InputMaybe; + withdrawnAmount_not?: InputMaybe; + withdrawnAmount_not_in?: InputMaybe>; +}; + +export enum SiloAssetHourlySnapshot_OrderBy { + CreatedAt = 'createdAt', + DeltaDepositedAmount = 'deltaDepositedAmount', + DeltaDepositedBdv = 'deltaDepositedBDV', + DeltaWithdrawnAmount = 'deltaWithdrawnAmount', + DepositedAmount = 'depositedAmount', + DepositedBdv = 'depositedBDV', + Id = 'id', + Season = 'season', + SiloAsset = 'siloAsset', + SiloAssetDepositedAmount = 'siloAsset__depositedAmount', + SiloAssetDepositedBdv = 'siloAsset__depositedBDV', + SiloAssetId = 'siloAsset__id', + SiloAssetLastDailySnapshotDay = 'siloAsset__lastDailySnapshotDay', + SiloAssetLastHourlySnapshotSeason = 'siloAsset__lastHourlySnapshotSeason', + SiloAssetToken = 'siloAsset__token', + SiloAssetWithdrawnAmount = 'siloAsset__withdrawnAmount', + UpdatedAt = 'updatedAt', + WithdrawnAmount = 'withdrawnAmount' +} + +export type SiloAsset_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + dailySnapshots_?: InputMaybe; + depositedAmount?: InputMaybe; + depositedAmount_gt?: InputMaybe; + depositedAmount_gte?: InputMaybe; + depositedAmount_in?: InputMaybe>; + depositedAmount_lt?: InputMaybe; + depositedAmount_lte?: InputMaybe; + depositedAmount_not?: InputMaybe; + depositedAmount_not_in?: InputMaybe>; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; + silo?: InputMaybe; + silo_?: InputMaybe; + silo_contains?: InputMaybe; + silo_contains_nocase?: InputMaybe; + silo_ends_with?: InputMaybe; + silo_ends_with_nocase?: InputMaybe; + silo_gt?: InputMaybe; + silo_gte?: InputMaybe; + silo_in?: InputMaybe>; + silo_lt?: InputMaybe; + silo_lte?: InputMaybe; + silo_not?: InputMaybe; + silo_not_contains?: InputMaybe; + silo_not_contains_nocase?: InputMaybe; + silo_not_ends_with?: InputMaybe; + silo_not_ends_with_nocase?: InputMaybe; + silo_not_in?: InputMaybe>; + silo_not_starts_with?: InputMaybe; + silo_not_starts_with_nocase?: InputMaybe; + silo_starts_with?: InputMaybe; + silo_starts_with_nocase?: InputMaybe; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; + withdrawnAmount?: InputMaybe; + withdrawnAmount_gt?: InputMaybe; + withdrawnAmount_gte?: InputMaybe; + withdrawnAmount_in?: InputMaybe>; + withdrawnAmount_lt?: InputMaybe; + withdrawnAmount_lte?: InputMaybe; + withdrawnAmount_not?: InputMaybe; + withdrawnAmount_not_in?: InputMaybe>; +}; + +export enum SiloAsset_OrderBy { + DailySnapshots = 'dailySnapshots', + DepositedAmount = 'depositedAmount', + DepositedBdv = 'depositedBDV', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Token = 'token', + WithdrawnAmount = 'withdrawnAmount' +} + +export type SiloDailySnapshot = { + __typename?: 'SiloDailySnapshot'; + /** Point in time active farmers */ + activeFarmers: Scalars['Int']['output']; + /** Average convert down penalty that has been assessed, in percent. 20.5 = 20.5% */ + avgConvertDownPenalty: Scalars['BigDecimal']['output']; + /** Point in time average grown stalk per bdv per season */ + avgGrownStalkPerBdvPerSeason: Scalars['BigInt']['output']; + /** Point in time cumulative total for bean mints sent to the silo */ + beanMints: Scalars['BigInt']['output']; + /** [Seed Gauge] Current target ratio of Bean to LP deposits */ + beanToMaxLpGpPerBdvRatio: Scalars['BigInt']['output']; + /** Point in time total grown stalk gained via the Convert Up Bonus */ + bonusStalkConvertUp: Scalars['BigInt']['output']; + /** Point in time PI-7 convert down penalty) */ + convertDownPenalty?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** [Seed Gauge] Measures the difference in seeds of Bean and the max LP; can be derived from beanToMaxLpGpPerBdvRatio */ + cropRatio: Scalars['BigDecimal']['output']; + deltaActiveFarmers: Scalars['Int']['output']; + deltaAvgConvertDownPenalty: Scalars['BigDecimal']['output']; + deltaAvgGrownStalkPerBdvPerSeason: Scalars['BigInt']['output']; + deltaBeanMints: Scalars['BigInt']['output']; + deltaBeanToMaxLpGpPerBdvRatio: Scalars['BigInt']['output']; + deltaBonusStalkConvertUp: Scalars['BigInt']['output']; + deltaConvertDownPenalty?: Maybe; + deltaCropRatio: Scalars['BigDecimal']['output']; + deltaDepositedBDV: Scalars['BigInt']['output']; + deltaGerminatingStalk: Scalars['BigInt']['output']; + deltaGrownStalkPerSeason: Scalars['BigInt']['output']; + deltaPenalizedStalkConvertDown: Scalars['BigInt']['output']; + deltaPlantableStalk: Scalars['BigInt']['output']; + deltaPlantedBeans: Scalars['BigInt']['output']; + deltaRoots: Scalars['BigInt']['output']; + deltaStalk: Scalars['BigInt']['output']; + deltaTotalBdvConvertUp: Scalars['BigInt']['output']; + deltaTotalBdvConvertUpBonus: Scalars['BigInt']['output']; + deltaUnpenalizedStalkConvertDown: Scalars['BigInt']['output']; + /** Point in time current BDV of all deposited assets */ + depositedBDV: Scalars['BigInt']['output']; + /** [Seed Gauge] Stalk that is currently Germinating */ + germinatingStalk: Scalars['BigInt']['output']; + /** Point in time grown stalk per season */ + grownStalkPerSeason: Scalars['BigInt']['output']; + /** ID of silo - Day */ + id: Scalars['ID']['output']; + /** Point in time total stalk that has been penalized by the convert down penalty */ + penalizedStalkConvertDown: Scalars['BigInt']['output']; + /** Point in time current plantable stalk for bean seigniorage not yet claimed (only set on protocol-level Silo) */ + plantableStalk: Scalars['BigInt']['output']; + /** Point in time total of beans that have been Planted */ + plantedBeans: Scalars['BigInt']['output']; + /** Point in time current roots balance */ + roots: Scalars['BigInt']['output']; + /** Last season for the snapshot */ + season: Scalars['Int']['output']; + /** Silo associated with the snapshot */ + silo: Silo; + /** Point in time current stalk balance */ + stalk: Scalars['BigInt']['output']; + /** Point in time total BDV converted up regardless of receiving a bonus. (!) This value accumulates only when the Convert Up Bonus (gauge id 2) is active. */ + totalBdvConvertUp: Scalars['BigInt']['output']; + /** Point in time total BDV converted up that was awarded the bonus */ + totalBdvConvertUpBonus: Scalars['BigInt']['output']; + /** Point in time totalstalk that was not penalized during the application of a down convert penalty */ + unpenalizedStalkConvertDown: Scalars['BigInt']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type SiloDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + activeFarmers?: InputMaybe; + activeFarmers_gt?: InputMaybe; + activeFarmers_gte?: InputMaybe; + activeFarmers_in?: InputMaybe>; + activeFarmers_lt?: InputMaybe; + activeFarmers_lte?: InputMaybe; + activeFarmers_not?: InputMaybe; + activeFarmers_not_in?: InputMaybe>; + and?: InputMaybe>>; + avgConvertDownPenalty?: InputMaybe; + avgConvertDownPenalty_gt?: InputMaybe; + avgConvertDownPenalty_gte?: InputMaybe; + avgConvertDownPenalty_in?: InputMaybe>; + avgConvertDownPenalty_lt?: InputMaybe; + avgConvertDownPenalty_lte?: InputMaybe; + avgConvertDownPenalty_not?: InputMaybe; + avgConvertDownPenalty_not_in?: InputMaybe>; + avgGrownStalkPerBdvPerSeason?: InputMaybe; + avgGrownStalkPerBdvPerSeason_gt?: InputMaybe; + avgGrownStalkPerBdvPerSeason_gte?: InputMaybe; + avgGrownStalkPerBdvPerSeason_in?: InputMaybe>; + avgGrownStalkPerBdvPerSeason_lt?: InputMaybe; + avgGrownStalkPerBdvPerSeason_lte?: InputMaybe; + avgGrownStalkPerBdvPerSeason_not?: InputMaybe; + avgGrownStalkPerBdvPerSeason_not_in?: InputMaybe>; + beanMints?: InputMaybe; + beanMints_gt?: InputMaybe; + beanMints_gte?: InputMaybe; + beanMints_in?: InputMaybe>; + beanMints_lt?: InputMaybe; + beanMints_lte?: InputMaybe; + beanMints_not?: InputMaybe; + beanMints_not_in?: InputMaybe>; + beanToMaxLpGpPerBdvRatio?: InputMaybe; + beanToMaxLpGpPerBdvRatio_gt?: InputMaybe; + beanToMaxLpGpPerBdvRatio_gte?: InputMaybe; + beanToMaxLpGpPerBdvRatio_in?: InputMaybe>; + beanToMaxLpGpPerBdvRatio_lt?: InputMaybe; + beanToMaxLpGpPerBdvRatio_lte?: InputMaybe; + beanToMaxLpGpPerBdvRatio_not?: InputMaybe; + beanToMaxLpGpPerBdvRatio_not_in?: InputMaybe>; + bonusStalkConvertUp?: InputMaybe; + bonusStalkConvertUp_gt?: InputMaybe; + bonusStalkConvertUp_gte?: InputMaybe; + bonusStalkConvertUp_in?: InputMaybe>; + bonusStalkConvertUp_lt?: InputMaybe; + bonusStalkConvertUp_lte?: InputMaybe; + bonusStalkConvertUp_not?: InputMaybe; + bonusStalkConvertUp_not_in?: InputMaybe>; + convertDownPenalty?: InputMaybe; + convertDownPenalty_gt?: InputMaybe; + convertDownPenalty_gte?: InputMaybe; + convertDownPenalty_in?: InputMaybe>; + convertDownPenalty_lt?: InputMaybe; + convertDownPenalty_lte?: InputMaybe; + convertDownPenalty_not?: InputMaybe; + convertDownPenalty_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + cropRatio?: InputMaybe; + cropRatio_gt?: InputMaybe; + cropRatio_gte?: InputMaybe; + cropRatio_in?: InputMaybe>; + cropRatio_lt?: InputMaybe; + cropRatio_lte?: InputMaybe; + cropRatio_not?: InputMaybe; + cropRatio_not_in?: InputMaybe>; + deltaActiveFarmers?: InputMaybe; + deltaActiveFarmers_gt?: InputMaybe; + deltaActiveFarmers_gte?: InputMaybe; + deltaActiveFarmers_in?: InputMaybe>; + deltaActiveFarmers_lt?: InputMaybe; + deltaActiveFarmers_lte?: InputMaybe; + deltaActiveFarmers_not?: InputMaybe; + deltaActiveFarmers_not_in?: InputMaybe>; + deltaAvgConvertDownPenalty?: InputMaybe; + deltaAvgConvertDownPenalty_gt?: InputMaybe; + deltaAvgConvertDownPenalty_gte?: InputMaybe; + deltaAvgConvertDownPenalty_in?: InputMaybe>; + deltaAvgConvertDownPenalty_lt?: InputMaybe; + deltaAvgConvertDownPenalty_lte?: InputMaybe; + deltaAvgConvertDownPenalty_not?: InputMaybe; + deltaAvgConvertDownPenalty_not_in?: InputMaybe>; + deltaAvgGrownStalkPerBdvPerSeason?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_gt?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_gte?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_in?: InputMaybe>; + deltaAvgGrownStalkPerBdvPerSeason_lt?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_lte?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_not?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_not_in?: InputMaybe>; + deltaBeanMints?: InputMaybe; + deltaBeanMints_gt?: InputMaybe; + deltaBeanMints_gte?: InputMaybe; + deltaBeanMints_in?: InputMaybe>; + deltaBeanMints_lt?: InputMaybe; + deltaBeanMints_lte?: InputMaybe; + deltaBeanMints_not?: InputMaybe; + deltaBeanMints_not_in?: InputMaybe>; + deltaBeanToMaxLpGpPerBdvRatio?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_gt?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_gte?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_in?: InputMaybe>; + deltaBeanToMaxLpGpPerBdvRatio_lt?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_lte?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_not?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_not_in?: InputMaybe>; + deltaBonusStalkConvertUp?: InputMaybe; + deltaBonusStalkConvertUp_gt?: InputMaybe; + deltaBonusStalkConvertUp_gte?: InputMaybe; + deltaBonusStalkConvertUp_in?: InputMaybe>; + deltaBonusStalkConvertUp_lt?: InputMaybe; + deltaBonusStalkConvertUp_lte?: InputMaybe; + deltaBonusStalkConvertUp_not?: InputMaybe; + deltaBonusStalkConvertUp_not_in?: InputMaybe>; + deltaConvertDownPenalty?: InputMaybe; + deltaConvertDownPenalty_gt?: InputMaybe; + deltaConvertDownPenalty_gte?: InputMaybe; + deltaConvertDownPenalty_in?: InputMaybe>; + deltaConvertDownPenalty_lt?: InputMaybe; + deltaConvertDownPenalty_lte?: InputMaybe; + deltaConvertDownPenalty_not?: InputMaybe; + deltaConvertDownPenalty_not_in?: InputMaybe>; + deltaCropRatio?: InputMaybe; + deltaCropRatio_gt?: InputMaybe; + deltaCropRatio_gte?: InputMaybe; + deltaCropRatio_in?: InputMaybe>; + deltaCropRatio_lt?: InputMaybe; + deltaCropRatio_lte?: InputMaybe; + deltaCropRatio_not?: InputMaybe; + deltaCropRatio_not_in?: InputMaybe>; + deltaDepositedBDV?: InputMaybe; + deltaDepositedBDV_gt?: InputMaybe; + deltaDepositedBDV_gte?: InputMaybe; + deltaDepositedBDV_in?: InputMaybe>; + deltaDepositedBDV_lt?: InputMaybe; + deltaDepositedBDV_lte?: InputMaybe; + deltaDepositedBDV_not?: InputMaybe; + deltaDepositedBDV_not_in?: InputMaybe>; + deltaGerminatingStalk?: InputMaybe; + deltaGerminatingStalk_gt?: InputMaybe; + deltaGerminatingStalk_gte?: InputMaybe; + deltaGerminatingStalk_in?: InputMaybe>; + deltaGerminatingStalk_lt?: InputMaybe; + deltaGerminatingStalk_lte?: InputMaybe; + deltaGerminatingStalk_not?: InputMaybe; + deltaGerminatingStalk_not_in?: InputMaybe>; + deltaGrownStalkPerSeason?: InputMaybe; + deltaGrownStalkPerSeason_gt?: InputMaybe; + deltaGrownStalkPerSeason_gte?: InputMaybe; + deltaGrownStalkPerSeason_in?: InputMaybe>; + deltaGrownStalkPerSeason_lt?: InputMaybe; + deltaGrownStalkPerSeason_lte?: InputMaybe; + deltaGrownStalkPerSeason_not?: InputMaybe; + deltaGrownStalkPerSeason_not_in?: InputMaybe>; + deltaPenalizedStalkConvertDown?: InputMaybe; + deltaPenalizedStalkConvertDown_gt?: InputMaybe; + deltaPenalizedStalkConvertDown_gte?: InputMaybe; + deltaPenalizedStalkConvertDown_in?: InputMaybe>; + deltaPenalizedStalkConvertDown_lt?: InputMaybe; + deltaPenalizedStalkConvertDown_lte?: InputMaybe; + deltaPenalizedStalkConvertDown_not?: InputMaybe; + deltaPenalizedStalkConvertDown_not_in?: InputMaybe>; + deltaPlantableStalk?: InputMaybe; + deltaPlantableStalk_gt?: InputMaybe; + deltaPlantableStalk_gte?: InputMaybe; + deltaPlantableStalk_in?: InputMaybe>; + deltaPlantableStalk_lt?: InputMaybe; + deltaPlantableStalk_lte?: InputMaybe; + deltaPlantableStalk_not?: InputMaybe; + deltaPlantableStalk_not_in?: InputMaybe>; + deltaPlantedBeans?: InputMaybe; + deltaPlantedBeans_gt?: InputMaybe; + deltaPlantedBeans_gte?: InputMaybe; + deltaPlantedBeans_in?: InputMaybe>; + deltaPlantedBeans_lt?: InputMaybe; + deltaPlantedBeans_lte?: InputMaybe; + deltaPlantedBeans_not?: InputMaybe; + deltaPlantedBeans_not_in?: InputMaybe>; + deltaRoots?: InputMaybe; + deltaRoots_gt?: InputMaybe; + deltaRoots_gte?: InputMaybe; + deltaRoots_in?: InputMaybe>; + deltaRoots_lt?: InputMaybe; + deltaRoots_lte?: InputMaybe; + deltaRoots_not?: InputMaybe; + deltaRoots_not_in?: InputMaybe>; + deltaStalk?: InputMaybe; + deltaStalk_gt?: InputMaybe; + deltaStalk_gte?: InputMaybe; + deltaStalk_in?: InputMaybe>; + deltaStalk_lt?: InputMaybe; + deltaStalk_lte?: InputMaybe; + deltaStalk_not?: InputMaybe; + deltaStalk_not_in?: InputMaybe>; + deltaTotalBdvConvertUp?: InputMaybe; + deltaTotalBdvConvertUpBonus?: InputMaybe; + deltaTotalBdvConvertUpBonus_gt?: InputMaybe; + deltaTotalBdvConvertUpBonus_gte?: InputMaybe; + deltaTotalBdvConvertUpBonus_in?: InputMaybe>; + deltaTotalBdvConvertUpBonus_lt?: InputMaybe; + deltaTotalBdvConvertUpBonus_lte?: InputMaybe; + deltaTotalBdvConvertUpBonus_not?: InputMaybe; + deltaTotalBdvConvertUpBonus_not_in?: InputMaybe>; + deltaTotalBdvConvertUp_gt?: InputMaybe; + deltaTotalBdvConvertUp_gte?: InputMaybe; + deltaTotalBdvConvertUp_in?: InputMaybe>; + deltaTotalBdvConvertUp_lt?: InputMaybe; + deltaTotalBdvConvertUp_lte?: InputMaybe; + deltaTotalBdvConvertUp_not?: InputMaybe; + deltaTotalBdvConvertUp_not_in?: InputMaybe>; + deltaUnpenalizedStalkConvertDown?: InputMaybe; + deltaUnpenalizedStalkConvertDown_gt?: InputMaybe; + deltaUnpenalizedStalkConvertDown_gte?: InputMaybe; + deltaUnpenalizedStalkConvertDown_in?: InputMaybe>; + deltaUnpenalizedStalkConvertDown_lt?: InputMaybe; + deltaUnpenalizedStalkConvertDown_lte?: InputMaybe; + deltaUnpenalizedStalkConvertDown_not?: InputMaybe; + deltaUnpenalizedStalkConvertDown_not_in?: InputMaybe>; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + germinatingStalk?: InputMaybe; + germinatingStalk_gt?: InputMaybe; + germinatingStalk_gte?: InputMaybe; + germinatingStalk_in?: InputMaybe>; + germinatingStalk_lt?: InputMaybe; + germinatingStalk_lte?: InputMaybe; + germinatingStalk_not?: InputMaybe; + germinatingStalk_not_in?: InputMaybe>; + grownStalkPerSeason?: InputMaybe; + grownStalkPerSeason_gt?: InputMaybe; + grownStalkPerSeason_gte?: InputMaybe; + grownStalkPerSeason_in?: InputMaybe>; + grownStalkPerSeason_lt?: InputMaybe; + grownStalkPerSeason_lte?: InputMaybe; + grownStalkPerSeason_not?: InputMaybe; + grownStalkPerSeason_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + penalizedStalkConvertDown?: InputMaybe; + penalizedStalkConvertDown_gt?: InputMaybe; + penalizedStalkConvertDown_gte?: InputMaybe; + penalizedStalkConvertDown_in?: InputMaybe>; + penalizedStalkConvertDown_lt?: InputMaybe; + penalizedStalkConvertDown_lte?: InputMaybe; + penalizedStalkConvertDown_not?: InputMaybe; + penalizedStalkConvertDown_not_in?: InputMaybe>; + plantableStalk?: InputMaybe; + plantableStalk_gt?: InputMaybe; + plantableStalk_gte?: InputMaybe; + plantableStalk_in?: InputMaybe>; + plantableStalk_lt?: InputMaybe; + plantableStalk_lte?: InputMaybe; + plantableStalk_not?: InputMaybe; + plantableStalk_not_in?: InputMaybe>; + plantedBeans?: InputMaybe; + plantedBeans_gt?: InputMaybe; + plantedBeans_gte?: InputMaybe; + plantedBeans_in?: InputMaybe>; + plantedBeans_lt?: InputMaybe; + plantedBeans_lte?: InputMaybe; + plantedBeans_not?: InputMaybe; + plantedBeans_not_in?: InputMaybe>; + roots?: InputMaybe; + roots_gt?: InputMaybe; + roots_gte?: InputMaybe; + roots_in?: InputMaybe>; + roots_lt?: InputMaybe; + roots_lte?: InputMaybe; + roots_not?: InputMaybe; + roots_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + silo?: InputMaybe; + silo_?: InputMaybe; + silo_contains?: InputMaybe; + silo_contains_nocase?: InputMaybe; + silo_ends_with?: InputMaybe; + silo_ends_with_nocase?: InputMaybe; + silo_gt?: InputMaybe; + silo_gte?: InputMaybe; + silo_in?: InputMaybe>; + silo_lt?: InputMaybe; + silo_lte?: InputMaybe; + silo_not?: InputMaybe; + silo_not_contains?: InputMaybe; + silo_not_contains_nocase?: InputMaybe; + silo_not_ends_with?: InputMaybe; + silo_not_ends_with_nocase?: InputMaybe; + silo_not_in?: InputMaybe>; + silo_not_starts_with?: InputMaybe; + silo_not_starts_with_nocase?: InputMaybe; + silo_starts_with?: InputMaybe; + silo_starts_with_nocase?: InputMaybe; + stalk?: InputMaybe; + stalk_gt?: InputMaybe; + stalk_gte?: InputMaybe; + stalk_in?: InputMaybe>; + stalk_lt?: InputMaybe; + stalk_lte?: InputMaybe; + stalk_not?: InputMaybe; + stalk_not_in?: InputMaybe>; + totalBdvConvertUp?: InputMaybe; + totalBdvConvertUpBonus?: InputMaybe; + totalBdvConvertUpBonus_gt?: InputMaybe; + totalBdvConvertUpBonus_gte?: InputMaybe; + totalBdvConvertUpBonus_in?: InputMaybe>; + totalBdvConvertUpBonus_lt?: InputMaybe; + totalBdvConvertUpBonus_lte?: InputMaybe; + totalBdvConvertUpBonus_not?: InputMaybe; + totalBdvConvertUpBonus_not_in?: InputMaybe>; + totalBdvConvertUp_gt?: InputMaybe; + totalBdvConvertUp_gte?: InputMaybe; + totalBdvConvertUp_in?: InputMaybe>; + totalBdvConvertUp_lt?: InputMaybe; + totalBdvConvertUp_lte?: InputMaybe; + totalBdvConvertUp_not?: InputMaybe; + totalBdvConvertUp_not_in?: InputMaybe>; + unpenalizedStalkConvertDown?: InputMaybe; + unpenalizedStalkConvertDown_gt?: InputMaybe; + unpenalizedStalkConvertDown_gte?: InputMaybe; + unpenalizedStalkConvertDown_in?: InputMaybe>; + unpenalizedStalkConvertDown_lt?: InputMaybe; + unpenalizedStalkConvertDown_lte?: InputMaybe; + unpenalizedStalkConvertDown_not?: InputMaybe; + unpenalizedStalkConvertDown_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum SiloDailySnapshot_OrderBy { + ActiveFarmers = 'activeFarmers', + AvgConvertDownPenalty = 'avgConvertDownPenalty', + AvgGrownStalkPerBdvPerSeason = 'avgGrownStalkPerBdvPerSeason', + BeanMints = 'beanMints', + BeanToMaxLpGpPerBdvRatio = 'beanToMaxLpGpPerBdvRatio', + BonusStalkConvertUp = 'bonusStalkConvertUp', + ConvertDownPenalty = 'convertDownPenalty', + CreatedAt = 'createdAt', + CropRatio = 'cropRatio', + DeltaActiveFarmers = 'deltaActiveFarmers', + DeltaAvgConvertDownPenalty = 'deltaAvgConvertDownPenalty', + DeltaAvgGrownStalkPerBdvPerSeason = 'deltaAvgGrownStalkPerBdvPerSeason', + DeltaBeanMints = 'deltaBeanMints', + DeltaBeanToMaxLpGpPerBdvRatio = 'deltaBeanToMaxLpGpPerBdvRatio', + DeltaBonusStalkConvertUp = 'deltaBonusStalkConvertUp', + DeltaConvertDownPenalty = 'deltaConvertDownPenalty', + DeltaCropRatio = 'deltaCropRatio', + DeltaDepositedBdv = 'deltaDepositedBDV', + DeltaGerminatingStalk = 'deltaGerminatingStalk', + DeltaGrownStalkPerSeason = 'deltaGrownStalkPerSeason', + DeltaPenalizedStalkConvertDown = 'deltaPenalizedStalkConvertDown', + DeltaPlantableStalk = 'deltaPlantableStalk', + DeltaPlantedBeans = 'deltaPlantedBeans', + DeltaRoots = 'deltaRoots', + DeltaStalk = 'deltaStalk', + DeltaTotalBdvConvertUp = 'deltaTotalBdvConvertUp', + DeltaTotalBdvConvertUpBonus = 'deltaTotalBdvConvertUpBonus', + DeltaUnpenalizedStalkConvertDown = 'deltaUnpenalizedStalkConvertDown', + DepositedBdv = 'depositedBDV', + GerminatingStalk = 'germinatingStalk', + GrownStalkPerSeason = 'grownStalkPerSeason', + Id = 'id', + PenalizedStalkConvertDown = 'penalizedStalkConvertDown', + PlantableStalk = 'plantableStalk', + PlantedBeans = 'plantedBeans', + Roots = 'roots', + Season = 'season', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Stalk = 'stalk', + TotalBdvConvertUp = 'totalBdvConvertUp', + TotalBdvConvertUpBonus = 'totalBdvConvertUpBonus', + UnpenalizedStalkConvertDown = 'unpenalizedStalkConvertDown', + UpdatedAt = 'updatedAt' +} + +export type SiloDeposit = { + __typename?: 'SiloDeposit'; + /** Timestamp of first deposit */ + createdAt: Scalars['BigInt']['output']; + /** Block of first deposit */ + createdBlock: Scalars['BigInt']['output']; + /** Version of deposit. Options are season, v3, v3.1. `season` type includes those deposits which are calculated according to their silo v1 deposits pre-explout */ + depositVersion: Scalars['String']['output']; + /** Token amount deposited */ + depositedAmount: Scalars['BigInt']['output']; + /** Original deposited BDV */ + depositedBDV: Scalars['BigInt']['output']; + /** Farmer address */ + farmer: Farmer; + /** Transaction hashes pertaining to this deposit */ + hashes: Array; + /** + * Account - Token Address - Deposit Version - (Season|Stem) + * + */ + id: Scalars['ID']['output']; + /** Season of deposit */ + season?: Maybe; + /** Stem of deposit */ + stem?: Maybe; + /** Silo v3.1 equivalent stem. This value will always be assigned regardless of the deposit version. */ + stemV31: Scalars['BigInt']['output']; + /** Token Address */ + token: Scalars['Bytes']['output']; + /** Timestamp when last updated */ + updatedAt: Scalars['BigInt']['output']; + /** Block when last updated */ + updatedBlock: Scalars['BigInt']['output']; +}; + +export type SiloDeposit_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + createdBlock?: InputMaybe; + createdBlock_gt?: InputMaybe; + createdBlock_gte?: InputMaybe; + createdBlock_in?: InputMaybe>; + createdBlock_lt?: InputMaybe; + createdBlock_lte?: InputMaybe; + createdBlock_not?: InputMaybe; + createdBlock_not_in?: InputMaybe>; + depositVersion?: InputMaybe; + depositVersion_contains?: InputMaybe; + depositVersion_contains_nocase?: InputMaybe; + depositVersion_ends_with?: InputMaybe; + depositVersion_ends_with_nocase?: InputMaybe; + depositVersion_gt?: InputMaybe; + depositVersion_gte?: InputMaybe; + depositVersion_in?: InputMaybe>; + depositVersion_lt?: InputMaybe; + depositVersion_lte?: InputMaybe; + depositVersion_not?: InputMaybe; + depositVersion_not_contains?: InputMaybe; + depositVersion_not_contains_nocase?: InputMaybe; + depositVersion_not_ends_with?: InputMaybe; + depositVersion_not_ends_with_nocase?: InputMaybe; + depositVersion_not_in?: InputMaybe>; + depositVersion_not_starts_with?: InputMaybe; + depositVersion_not_starts_with_nocase?: InputMaybe; + depositVersion_starts_with?: InputMaybe; + depositVersion_starts_with_nocase?: InputMaybe; + depositedAmount?: InputMaybe; + depositedAmount_gt?: InputMaybe; + depositedAmount_gte?: InputMaybe; + depositedAmount_in?: InputMaybe>; + depositedAmount_lt?: InputMaybe; + depositedAmount_lte?: InputMaybe; + depositedAmount_not?: InputMaybe; + depositedAmount_not_in?: InputMaybe>; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + hashes?: InputMaybe>; + hashes_contains?: InputMaybe>; + hashes_contains_nocase?: InputMaybe>; + hashes_not?: InputMaybe>; + hashes_not_contains?: InputMaybe>; + hashes_not_contains_nocase?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + stem?: InputMaybe; + stemV31?: InputMaybe; + stemV31_gt?: InputMaybe; + stemV31_gte?: InputMaybe; + stemV31_in?: InputMaybe>; + stemV31_lt?: InputMaybe; + stemV31_lte?: InputMaybe; + stemV31_not?: InputMaybe; + stemV31_not_in?: InputMaybe>; + stem_gt?: InputMaybe; + stem_gte?: InputMaybe; + stem_in?: InputMaybe>; + stem_lt?: InputMaybe; + stem_lte?: InputMaybe; + stem_not?: InputMaybe; + stem_not_in?: InputMaybe>; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; + updatedBlock?: InputMaybe; + updatedBlock_gt?: InputMaybe; + updatedBlock_gte?: InputMaybe; + updatedBlock_in?: InputMaybe>; + updatedBlock_lt?: InputMaybe; + updatedBlock_lte?: InputMaybe; + updatedBlock_not?: InputMaybe; + updatedBlock_not_in?: InputMaybe>; +}; + +export enum SiloDeposit_OrderBy { + CreatedAt = 'createdAt', + CreatedBlock = 'createdBlock', + DepositVersion = 'depositVersion', + DepositedAmount = 'depositedAmount', + DepositedBdv = 'depositedBDV', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Hashes = 'hashes', + Id = 'id', + Season = 'season', + Stem = 'stem', + StemV31 = 'stemV31', + Token = 'token', + UpdatedAt = 'updatedAt', + UpdatedBlock = 'updatedBlock' +} + +export type SiloHourlySnapshot = { + __typename?: 'SiloHourlySnapshot'; + /** Point in time active farmers */ + activeFarmers: Scalars['Int']['output']; + /** Average convert down penalty that has been assessed, in percent. 20.5 = 20.5% */ + avgConvertDownPenalty: Scalars['BigDecimal']['output']; + /** Point in time average grown stalk per bdv per season */ + avgGrownStalkPerBdvPerSeason: Scalars['BigInt']['output']; + /** Point in time cumulative total for bean mints sent to the silo */ + beanMints: Scalars['BigInt']['output']; + /** [Seed Gauge] Target ratio of Bean to LP deposits */ + beanToMaxLpGpPerBdvRatio: Scalars['BigInt']['output']; + /** Point in time total grown stalk gained via the Convert Up Bonus */ + bonusStalkConvertUp: Scalars['BigInt']['output']; + /** [Seed Gauge] The caseId used in the seasonal adjustment of beanToMaxLpGpPerBdvRatio */ + caseId?: Maybe; + /** Point in time PI-7 convert down penalty) */ + convertDownPenalty?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** [Seed Gauge] Measures the difference in seeds of Bean and the max LP; can be derived from beanToMaxLpGpPerBdvRatio */ + cropRatio: Scalars['BigDecimal']['output']; + deltaActiveFarmers: Scalars['Int']['output']; + deltaAvgConvertDownPenalty: Scalars['BigDecimal']['output']; + deltaAvgGrownStalkPerBdvPerSeason: Scalars['BigInt']['output']; + deltaBeanMints: Scalars['BigInt']['output']; + deltaBeanToMaxLpGpPerBdvRatio: Scalars['BigInt']['output']; + deltaBonusStalkConvertUp: Scalars['BigInt']['output']; + deltaConvertDownPenalty?: Maybe; + deltaCropRatio: Scalars['BigDecimal']['output']; + deltaDepositedBDV: Scalars['BigInt']['output']; + deltaGerminatingStalk: Scalars['BigInt']['output']; + deltaGrownStalkPerSeason: Scalars['BigInt']['output']; + deltaPenalizedStalkConvertDown: Scalars['BigInt']['output']; + deltaPlantableStalk: Scalars['BigInt']['output']; + deltaPlantedBeans: Scalars['BigInt']['output']; + deltaRoots: Scalars['BigInt']['output']; + deltaStalk: Scalars['BigInt']['output']; + deltaTotalBdvConvertUp: Scalars['BigInt']['output']; + deltaTotalBdvConvertUpBonus: Scalars['BigInt']['output']; + deltaUnpenalizedStalkConvertDown: Scalars['BigInt']['output']; + /** Point in time current BDV of all deposited assets */ + depositedBDV: Scalars['BigInt']['output']; + /** [Seed Gauge] Stalk that is currently Germinating */ + germinatingStalk: Scalars['BigInt']['output']; + /** Point in time grown stalk per season */ + grownStalkPerSeason: Scalars['BigInt']['output']; + /** ID of silo - Season */ + id: Scalars['ID']['output']; + /** Point in time total stalk that has been penalized by the convert down penalty */ + penalizedStalkConvertDown: Scalars['BigInt']['output']; + /** Point in time current plantable stalk for bean seigniorage not yet claimed (only set on protocol-level Silo) */ + plantableStalk: Scalars['BigInt']['output']; + /** Point in time total of beans that have been Planted */ + plantedBeans: Scalars['BigInt']['output']; + /** Point in time current roots balance */ + roots: Scalars['BigInt']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Silo associated with the snapshot */ + silo: Silo; + /** Point in time current stalk balance */ + stalk: Scalars['BigInt']['output']; + /** Point in time total BDV converted up regardless of receiving a bonus. (!) This value accumulates only when the Convert Up Bonus (gauge id 2) is active. */ + totalBdvConvertUp: Scalars['BigInt']['output']; + /** Point in time total BDV converted up that was awarded the bonus */ + totalBdvConvertUpBonus: Scalars['BigInt']['output']; + /** Point in time totalstalk that was not penalized during the application of a down convert penalty */ + unpenalizedStalkConvertDown: Scalars['BigInt']['output']; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type SiloHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + activeFarmers?: InputMaybe; + activeFarmers_gt?: InputMaybe; + activeFarmers_gte?: InputMaybe; + activeFarmers_in?: InputMaybe>; + activeFarmers_lt?: InputMaybe; + activeFarmers_lte?: InputMaybe; + activeFarmers_not?: InputMaybe; + activeFarmers_not_in?: InputMaybe>; + and?: InputMaybe>>; + avgConvertDownPenalty?: InputMaybe; + avgConvertDownPenalty_gt?: InputMaybe; + avgConvertDownPenalty_gte?: InputMaybe; + avgConvertDownPenalty_in?: InputMaybe>; + avgConvertDownPenalty_lt?: InputMaybe; + avgConvertDownPenalty_lte?: InputMaybe; + avgConvertDownPenalty_not?: InputMaybe; + avgConvertDownPenalty_not_in?: InputMaybe>; + avgGrownStalkPerBdvPerSeason?: InputMaybe; + avgGrownStalkPerBdvPerSeason_gt?: InputMaybe; + avgGrownStalkPerBdvPerSeason_gte?: InputMaybe; + avgGrownStalkPerBdvPerSeason_in?: InputMaybe>; + avgGrownStalkPerBdvPerSeason_lt?: InputMaybe; + avgGrownStalkPerBdvPerSeason_lte?: InputMaybe; + avgGrownStalkPerBdvPerSeason_not?: InputMaybe; + avgGrownStalkPerBdvPerSeason_not_in?: InputMaybe>; + beanMints?: InputMaybe; + beanMints_gt?: InputMaybe; + beanMints_gte?: InputMaybe; + beanMints_in?: InputMaybe>; + beanMints_lt?: InputMaybe; + beanMints_lte?: InputMaybe; + beanMints_not?: InputMaybe; + beanMints_not_in?: InputMaybe>; + beanToMaxLpGpPerBdvRatio?: InputMaybe; + beanToMaxLpGpPerBdvRatio_gt?: InputMaybe; + beanToMaxLpGpPerBdvRatio_gte?: InputMaybe; + beanToMaxLpGpPerBdvRatio_in?: InputMaybe>; + beanToMaxLpGpPerBdvRatio_lt?: InputMaybe; + beanToMaxLpGpPerBdvRatio_lte?: InputMaybe; + beanToMaxLpGpPerBdvRatio_not?: InputMaybe; + beanToMaxLpGpPerBdvRatio_not_in?: InputMaybe>; + bonusStalkConvertUp?: InputMaybe; + bonusStalkConvertUp_gt?: InputMaybe; + bonusStalkConvertUp_gte?: InputMaybe; + bonusStalkConvertUp_in?: InputMaybe>; + bonusStalkConvertUp_lt?: InputMaybe; + bonusStalkConvertUp_lte?: InputMaybe; + bonusStalkConvertUp_not?: InputMaybe; + bonusStalkConvertUp_not_in?: InputMaybe>; + caseId?: InputMaybe; + caseId_gt?: InputMaybe; + caseId_gte?: InputMaybe; + caseId_in?: InputMaybe>; + caseId_lt?: InputMaybe; + caseId_lte?: InputMaybe; + caseId_not?: InputMaybe; + caseId_not_in?: InputMaybe>; + convertDownPenalty?: InputMaybe; + convertDownPenalty_gt?: InputMaybe; + convertDownPenalty_gte?: InputMaybe; + convertDownPenalty_in?: InputMaybe>; + convertDownPenalty_lt?: InputMaybe; + convertDownPenalty_lte?: InputMaybe; + convertDownPenalty_not?: InputMaybe; + convertDownPenalty_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + cropRatio?: InputMaybe; + cropRatio_gt?: InputMaybe; + cropRatio_gte?: InputMaybe; + cropRatio_in?: InputMaybe>; + cropRatio_lt?: InputMaybe; + cropRatio_lte?: InputMaybe; + cropRatio_not?: InputMaybe; + cropRatio_not_in?: InputMaybe>; + deltaActiveFarmers?: InputMaybe; + deltaActiveFarmers_gt?: InputMaybe; + deltaActiveFarmers_gte?: InputMaybe; + deltaActiveFarmers_in?: InputMaybe>; + deltaActiveFarmers_lt?: InputMaybe; + deltaActiveFarmers_lte?: InputMaybe; + deltaActiveFarmers_not?: InputMaybe; + deltaActiveFarmers_not_in?: InputMaybe>; + deltaAvgConvertDownPenalty?: InputMaybe; + deltaAvgConvertDownPenalty_gt?: InputMaybe; + deltaAvgConvertDownPenalty_gte?: InputMaybe; + deltaAvgConvertDownPenalty_in?: InputMaybe>; + deltaAvgConvertDownPenalty_lt?: InputMaybe; + deltaAvgConvertDownPenalty_lte?: InputMaybe; + deltaAvgConvertDownPenalty_not?: InputMaybe; + deltaAvgConvertDownPenalty_not_in?: InputMaybe>; + deltaAvgGrownStalkPerBdvPerSeason?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_gt?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_gte?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_in?: InputMaybe>; + deltaAvgGrownStalkPerBdvPerSeason_lt?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_lte?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_not?: InputMaybe; + deltaAvgGrownStalkPerBdvPerSeason_not_in?: InputMaybe>; + deltaBeanMints?: InputMaybe; + deltaBeanMints_gt?: InputMaybe; + deltaBeanMints_gte?: InputMaybe; + deltaBeanMints_in?: InputMaybe>; + deltaBeanMints_lt?: InputMaybe; + deltaBeanMints_lte?: InputMaybe; + deltaBeanMints_not?: InputMaybe; + deltaBeanMints_not_in?: InputMaybe>; + deltaBeanToMaxLpGpPerBdvRatio?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_gt?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_gte?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_in?: InputMaybe>; + deltaBeanToMaxLpGpPerBdvRatio_lt?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_lte?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_not?: InputMaybe; + deltaBeanToMaxLpGpPerBdvRatio_not_in?: InputMaybe>; + deltaBonusStalkConvertUp?: InputMaybe; + deltaBonusStalkConvertUp_gt?: InputMaybe; + deltaBonusStalkConvertUp_gte?: InputMaybe; + deltaBonusStalkConvertUp_in?: InputMaybe>; + deltaBonusStalkConvertUp_lt?: InputMaybe; + deltaBonusStalkConvertUp_lte?: InputMaybe; + deltaBonusStalkConvertUp_not?: InputMaybe; + deltaBonusStalkConvertUp_not_in?: InputMaybe>; + deltaConvertDownPenalty?: InputMaybe; + deltaConvertDownPenalty_gt?: InputMaybe; + deltaConvertDownPenalty_gte?: InputMaybe; + deltaConvertDownPenalty_in?: InputMaybe>; + deltaConvertDownPenalty_lt?: InputMaybe; + deltaConvertDownPenalty_lte?: InputMaybe; + deltaConvertDownPenalty_not?: InputMaybe; + deltaConvertDownPenalty_not_in?: InputMaybe>; + deltaCropRatio?: InputMaybe; + deltaCropRatio_gt?: InputMaybe; + deltaCropRatio_gte?: InputMaybe; + deltaCropRatio_in?: InputMaybe>; + deltaCropRatio_lt?: InputMaybe; + deltaCropRatio_lte?: InputMaybe; + deltaCropRatio_not?: InputMaybe; + deltaCropRatio_not_in?: InputMaybe>; + deltaDepositedBDV?: InputMaybe; + deltaDepositedBDV_gt?: InputMaybe; + deltaDepositedBDV_gte?: InputMaybe; + deltaDepositedBDV_in?: InputMaybe>; + deltaDepositedBDV_lt?: InputMaybe; + deltaDepositedBDV_lte?: InputMaybe; + deltaDepositedBDV_not?: InputMaybe; + deltaDepositedBDV_not_in?: InputMaybe>; + deltaGerminatingStalk?: InputMaybe; + deltaGerminatingStalk_gt?: InputMaybe; + deltaGerminatingStalk_gte?: InputMaybe; + deltaGerminatingStalk_in?: InputMaybe>; + deltaGerminatingStalk_lt?: InputMaybe; + deltaGerminatingStalk_lte?: InputMaybe; + deltaGerminatingStalk_not?: InputMaybe; + deltaGerminatingStalk_not_in?: InputMaybe>; + deltaGrownStalkPerSeason?: InputMaybe; + deltaGrownStalkPerSeason_gt?: InputMaybe; + deltaGrownStalkPerSeason_gte?: InputMaybe; + deltaGrownStalkPerSeason_in?: InputMaybe>; + deltaGrownStalkPerSeason_lt?: InputMaybe; + deltaGrownStalkPerSeason_lte?: InputMaybe; + deltaGrownStalkPerSeason_not?: InputMaybe; + deltaGrownStalkPerSeason_not_in?: InputMaybe>; + deltaPenalizedStalkConvertDown?: InputMaybe; + deltaPenalizedStalkConvertDown_gt?: InputMaybe; + deltaPenalizedStalkConvertDown_gte?: InputMaybe; + deltaPenalizedStalkConvertDown_in?: InputMaybe>; + deltaPenalizedStalkConvertDown_lt?: InputMaybe; + deltaPenalizedStalkConvertDown_lte?: InputMaybe; + deltaPenalizedStalkConvertDown_not?: InputMaybe; + deltaPenalizedStalkConvertDown_not_in?: InputMaybe>; + deltaPlantableStalk?: InputMaybe; + deltaPlantableStalk_gt?: InputMaybe; + deltaPlantableStalk_gte?: InputMaybe; + deltaPlantableStalk_in?: InputMaybe>; + deltaPlantableStalk_lt?: InputMaybe; + deltaPlantableStalk_lte?: InputMaybe; + deltaPlantableStalk_not?: InputMaybe; + deltaPlantableStalk_not_in?: InputMaybe>; + deltaPlantedBeans?: InputMaybe; + deltaPlantedBeans_gt?: InputMaybe; + deltaPlantedBeans_gte?: InputMaybe; + deltaPlantedBeans_in?: InputMaybe>; + deltaPlantedBeans_lt?: InputMaybe; + deltaPlantedBeans_lte?: InputMaybe; + deltaPlantedBeans_not?: InputMaybe; + deltaPlantedBeans_not_in?: InputMaybe>; + deltaRoots?: InputMaybe; + deltaRoots_gt?: InputMaybe; + deltaRoots_gte?: InputMaybe; + deltaRoots_in?: InputMaybe>; + deltaRoots_lt?: InputMaybe; + deltaRoots_lte?: InputMaybe; + deltaRoots_not?: InputMaybe; + deltaRoots_not_in?: InputMaybe>; + deltaStalk?: InputMaybe; + deltaStalk_gt?: InputMaybe; + deltaStalk_gte?: InputMaybe; + deltaStalk_in?: InputMaybe>; + deltaStalk_lt?: InputMaybe; + deltaStalk_lte?: InputMaybe; + deltaStalk_not?: InputMaybe; + deltaStalk_not_in?: InputMaybe>; + deltaTotalBdvConvertUp?: InputMaybe; + deltaTotalBdvConvertUpBonus?: InputMaybe; + deltaTotalBdvConvertUpBonus_gt?: InputMaybe; + deltaTotalBdvConvertUpBonus_gte?: InputMaybe; + deltaTotalBdvConvertUpBonus_in?: InputMaybe>; + deltaTotalBdvConvertUpBonus_lt?: InputMaybe; + deltaTotalBdvConvertUpBonus_lte?: InputMaybe; + deltaTotalBdvConvertUpBonus_not?: InputMaybe; + deltaTotalBdvConvertUpBonus_not_in?: InputMaybe>; + deltaTotalBdvConvertUp_gt?: InputMaybe; + deltaTotalBdvConvertUp_gte?: InputMaybe; + deltaTotalBdvConvertUp_in?: InputMaybe>; + deltaTotalBdvConvertUp_lt?: InputMaybe; + deltaTotalBdvConvertUp_lte?: InputMaybe; + deltaTotalBdvConvertUp_not?: InputMaybe; + deltaTotalBdvConvertUp_not_in?: InputMaybe>; + deltaUnpenalizedStalkConvertDown?: InputMaybe; + deltaUnpenalizedStalkConvertDown_gt?: InputMaybe; + deltaUnpenalizedStalkConvertDown_gte?: InputMaybe; + deltaUnpenalizedStalkConvertDown_in?: InputMaybe>; + deltaUnpenalizedStalkConvertDown_lt?: InputMaybe; + deltaUnpenalizedStalkConvertDown_lte?: InputMaybe; + deltaUnpenalizedStalkConvertDown_not?: InputMaybe; + deltaUnpenalizedStalkConvertDown_not_in?: InputMaybe>; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + germinatingStalk?: InputMaybe; + germinatingStalk_gt?: InputMaybe; + germinatingStalk_gte?: InputMaybe; + germinatingStalk_in?: InputMaybe>; + germinatingStalk_lt?: InputMaybe; + germinatingStalk_lte?: InputMaybe; + germinatingStalk_not?: InputMaybe; + germinatingStalk_not_in?: InputMaybe>; + grownStalkPerSeason?: InputMaybe; + grownStalkPerSeason_gt?: InputMaybe; + grownStalkPerSeason_gte?: InputMaybe; + grownStalkPerSeason_in?: InputMaybe>; + grownStalkPerSeason_lt?: InputMaybe; + grownStalkPerSeason_lte?: InputMaybe; + grownStalkPerSeason_not?: InputMaybe; + grownStalkPerSeason_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + penalizedStalkConvertDown?: InputMaybe; + penalizedStalkConvertDown_gt?: InputMaybe; + penalizedStalkConvertDown_gte?: InputMaybe; + penalizedStalkConvertDown_in?: InputMaybe>; + penalizedStalkConvertDown_lt?: InputMaybe; + penalizedStalkConvertDown_lte?: InputMaybe; + penalizedStalkConvertDown_not?: InputMaybe; + penalizedStalkConvertDown_not_in?: InputMaybe>; + plantableStalk?: InputMaybe; + plantableStalk_gt?: InputMaybe; + plantableStalk_gte?: InputMaybe; + plantableStalk_in?: InputMaybe>; + plantableStalk_lt?: InputMaybe; + plantableStalk_lte?: InputMaybe; + plantableStalk_not?: InputMaybe; + plantableStalk_not_in?: InputMaybe>; + plantedBeans?: InputMaybe; + plantedBeans_gt?: InputMaybe; + plantedBeans_gte?: InputMaybe; + plantedBeans_in?: InputMaybe>; + plantedBeans_lt?: InputMaybe; + plantedBeans_lte?: InputMaybe; + plantedBeans_not?: InputMaybe; + plantedBeans_not_in?: InputMaybe>; + roots?: InputMaybe; + roots_gt?: InputMaybe; + roots_gte?: InputMaybe; + roots_in?: InputMaybe>; + roots_lt?: InputMaybe; + roots_lte?: InputMaybe; + roots_not?: InputMaybe; + roots_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + silo?: InputMaybe; + silo_?: InputMaybe; + silo_contains?: InputMaybe; + silo_contains_nocase?: InputMaybe; + silo_ends_with?: InputMaybe; + silo_ends_with_nocase?: InputMaybe; + silo_gt?: InputMaybe; + silo_gte?: InputMaybe; + silo_in?: InputMaybe>; + silo_lt?: InputMaybe; + silo_lte?: InputMaybe; + silo_not?: InputMaybe; + silo_not_contains?: InputMaybe; + silo_not_contains_nocase?: InputMaybe; + silo_not_ends_with?: InputMaybe; + silo_not_ends_with_nocase?: InputMaybe; + silo_not_in?: InputMaybe>; + silo_not_starts_with?: InputMaybe; + silo_not_starts_with_nocase?: InputMaybe; + silo_starts_with?: InputMaybe; + silo_starts_with_nocase?: InputMaybe; + stalk?: InputMaybe; + stalk_gt?: InputMaybe; + stalk_gte?: InputMaybe; + stalk_in?: InputMaybe>; + stalk_lt?: InputMaybe; + stalk_lte?: InputMaybe; + stalk_not?: InputMaybe; + stalk_not_in?: InputMaybe>; + totalBdvConvertUp?: InputMaybe; + totalBdvConvertUpBonus?: InputMaybe; + totalBdvConvertUpBonus_gt?: InputMaybe; + totalBdvConvertUpBonus_gte?: InputMaybe; + totalBdvConvertUpBonus_in?: InputMaybe>; + totalBdvConvertUpBonus_lt?: InputMaybe; + totalBdvConvertUpBonus_lte?: InputMaybe; + totalBdvConvertUpBonus_not?: InputMaybe; + totalBdvConvertUpBonus_not_in?: InputMaybe>; + totalBdvConvertUp_gt?: InputMaybe; + totalBdvConvertUp_gte?: InputMaybe; + totalBdvConvertUp_in?: InputMaybe>; + totalBdvConvertUp_lt?: InputMaybe; + totalBdvConvertUp_lte?: InputMaybe; + totalBdvConvertUp_not?: InputMaybe; + totalBdvConvertUp_not_in?: InputMaybe>; + unpenalizedStalkConvertDown?: InputMaybe; + unpenalizedStalkConvertDown_gt?: InputMaybe; + unpenalizedStalkConvertDown_gte?: InputMaybe; + unpenalizedStalkConvertDown_in?: InputMaybe>; + unpenalizedStalkConvertDown_lt?: InputMaybe; + unpenalizedStalkConvertDown_lte?: InputMaybe; + unpenalizedStalkConvertDown_not?: InputMaybe; + unpenalizedStalkConvertDown_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum SiloHourlySnapshot_OrderBy { + ActiveFarmers = 'activeFarmers', + AvgConvertDownPenalty = 'avgConvertDownPenalty', + AvgGrownStalkPerBdvPerSeason = 'avgGrownStalkPerBdvPerSeason', + BeanMints = 'beanMints', + BeanToMaxLpGpPerBdvRatio = 'beanToMaxLpGpPerBdvRatio', + BonusStalkConvertUp = 'bonusStalkConvertUp', + CaseId = 'caseId', + ConvertDownPenalty = 'convertDownPenalty', + CreatedAt = 'createdAt', + CropRatio = 'cropRatio', + DeltaActiveFarmers = 'deltaActiveFarmers', + DeltaAvgConvertDownPenalty = 'deltaAvgConvertDownPenalty', + DeltaAvgGrownStalkPerBdvPerSeason = 'deltaAvgGrownStalkPerBdvPerSeason', + DeltaBeanMints = 'deltaBeanMints', + DeltaBeanToMaxLpGpPerBdvRatio = 'deltaBeanToMaxLpGpPerBdvRatio', + DeltaBonusStalkConvertUp = 'deltaBonusStalkConvertUp', + DeltaConvertDownPenalty = 'deltaConvertDownPenalty', + DeltaCropRatio = 'deltaCropRatio', + DeltaDepositedBdv = 'deltaDepositedBDV', + DeltaGerminatingStalk = 'deltaGerminatingStalk', + DeltaGrownStalkPerSeason = 'deltaGrownStalkPerSeason', + DeltaPenalizedStalkConvertDown = 'deltaPenalizedStalkConvertDown', + DeltaPlantableStalk = 'deltaPlantableStalk', + DeltaPlantedBeans = 'deltaPlantedBeans', + DeltaRoots = 'deltaRoots', + DeltaStalk = 'deltaStalk', + DeltaTotalBdvConvertUp = 'deltaTotalBdvConvertUp', + DeltaTotalBdvConvertUpBonus = 'deltaTotalBdvConvertUpBonus', + DeltaUnpenalizedStalkConvertDown = 'deltaUnpenalizedStalkConvertDown', + DepositedBdv = 'depositedBDV', + GerminatingStalk = 'germinatingStalk', + GrownStalkPerSeason = 'grownStalkPerSeason', + Id = 'id', + PenalizedStalkConvertDown = 'penalizedStalkConvertDown', + PlantableStalk = 'plantableStalk', + PlantedBeans = 'plantedBeans', + Roots = 'roots', + Season = 'season', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Stalk = 'stalk', + TotalBdvConvertUp = 'totalBdvConvertUp', + TotalBdvConvertUpBonus = 'totalBdvConvertUpBonus', + UnpenalizedStalkConvertDown = 'unpenalizedStalkConvertDown', + UpdatedAt = 'updatedAt' +} + +export type SiloWithdraw = { + __typename?: 'SiloWithdraw'; + /** Token amount withdrawn */ + amount: Scalars['BigInt']['output']; + /** Season when withdrawal can be claimed */ + claimableSeason: Scalars['Int']['output']; + /** Flag for if this has been claimed */ + claimed: Scalars['Boolean']['output']; + /** Timestamp created */ + createdAt: Scalars['BigInt']['output']; + /** Farmer address */ + farmer: Farmer; + /** Account - Deposit Token - Current Season */ + id: Scalars['ID']['output']; + /** Token address */ + token: Scalars['Bytes']['output']; + /** Season withdrawal initiated */ + withdrawSeason: Scalars['Int']['output']; +}; + +export type SiloWithdraw_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + and?: InputMaybe>>; + claimableSeason?: InputMaybe; + claimableSeason_gt?: InputMaybe; + claimableSeason_gte?: InputMaybe; + claimableSeason_in?: InputMaybe>; + claimableSeason_lt?: InputMaybe; + claimableSeason_lte?: InputMaybe; + claimableSeason_not?: InputMaybe; + claimableSeason_not_in?: InputMaybe>; + claimed?: InputMaybe; + claimed_in?: InputMaybe>; + claimed_not?: InputMaybe; + claimed_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; + withdrawSeason?: InputMaybe; + withdrawSeason_gt?: InputMaybe; + withdrawSeason_gte?: InputMaybe; + withdrawSeason_in?: InputMaybe>; + withdrawSeason_lt?: InputMaybe; + withdrawSeason_lte?: InputMaybe; + withdrawSeason_not?: InputMaybe; + withdrawSeason_not_in?: InputMaybe>; +}; + +export enum SiloWithdraw_OrderBy { + Amount = 'amount', + ClaimableSeason = 'claimableSeason', + Claimed = 'claimed', + CreatedAt = 'createdAt', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Id = 'id', + Token = 'token', + WithdrawSeason = 'withdrawSeason' +} + +export type SiloYield = { + __typename?: 'SiloYield'; + /** Bean EMA for season */ + beansPerSeasonEMA: Scalars['BigDecimal']['output']; + /** Beta used for EMA */ + beta: Scalars['BigDecimal']['output']; + /** Unix timestamp of update */ + createdAt: Scalars['BigInt']['output']; + /** Window used for vAPY calc */ + emaWindow: EmaWindow; + /** Season of data points - EMA window */ + id: Scalars['ID']['output']; + /** Sortable int field for season */ + season: Scalars['Int']['output']; + /** Current Bean (0) and Stalk (1) APY for each token. */ + tokenAPYS: Array; + /** u used for EMA */ + u: Scalars['Int']['output']; + /** Current whitelisted silo tokens */ + whitelistedTokens: Array; +}; + + +export type SiloYieldTokenApysArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type SiloYield_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beansPerSeasonEMA?: InputMaybe; + beansPerSeasonEMA_gt?: InputMaybe; + beansPerSeasonEMA_gte?: InputMaybe; + beansPerSeasonEMA_in?: InputMaybe>; + beansPerSeasonEMA_lt?: InputMaybe; + beansPerSeasonEMA_lte?: InputMaybe; + beansPerSeasonEMA_not?: InputMaybe; + beansPerSeasonEMA_not_in?: InputMaybe>; + beta?: InputMaybe; + beta_gt?: InputMaybe; + beta_gte?: InputMaybe; + beta_in?: InputMaybe>; + beta_lt?: InputMaybe; + beta_lte?: InputMaybe; + beta_not?: InputMaybe; + beta_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + emaWindow?: InputMaybe; + emaWindow_in?: InputMaybe>; + emaWindow_not?: InputMaybe; + emaWindow_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + tokenAPYS_?: InputMaybe; + u?: InputMaybe; + u_gt?: InputMaybe; + u_gte?: InputMaybe; + u_in?: InputMaybe>; + u_lt?: InputMaybe; + u_lte?: InputMaybe; + u_not?: InputMaybe; + u_not_in?: InputMaybe>; + whitelistedTokens?: InputMaybe>; + whitelistedTokens_contains?: InputMaybe>; + whitelistedTokens_contains_nocase?: InputMaybe>; + whitelistedTokens_not?: InputMaybe>; + whitelistedTokens_not_contains?: InputMaybe>; + whitelistedTokens_not_contains_nocase?: InputMaybe>; +}; + +export enum SiloYield_OrderBy { + BeansPerSeasonEma = 'beansPerSeasonEMA', + Beta = 'beta', + CreatedAt = 'createdAt', + EmaWindow = 'emaWindow', + Id = 'id', + Season = 'season', + TokenApys = 'tokenAPYS', + U = 'u', + WhitelistedTokens = 'whitelistedTokens' +} + +export type Silo_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + activeFarmers?: InputMaybe; + activeFarmers_gt?: InputMaybe; + activeFarmers_gte?: InputMaybe; + activeFarmers_in?: InputMaybe>; + activeFarmers_lt?: InputMaybe; + activeFarmers_lte?: InputMaybe; + activeFarmers_not?: InputMaybe; + activeFarmers_not_in?: InputMaybe>; + allWhitelistedTokens?: InputMaybe>; + allWhitelistedTokens_contains?: InputMaybe>; + allWhitelistedTokens_contains_nocase?: InputMaybe>; + allWhitelistedTokens_not?: InputMaybe>; + allWhitelistedTokens_not_contains?: InputMaybe>; + allWhitelistedTokens_not_contains_nocase?: InputMaybe>; + and?: InputMaybe>>; + assets_?: InputMaybe; + avgConvertDownPenalty?: InputMaybe; + avgConvertDownPenalty_gt?: InputMaybe; + avgConvertDownPenalty_gte?: InputMaybe; + avgConvertDownPenalty_in?: InputMaybe>; + avgConvertDownPenalty_lt?: InputMaybe; + avgConvertDownPenalty_lte?: InputMaybe; + avgConvertDownPenalty_not?: InputMaybe; + avgConvertDownPenalty_not_in?: InputMaybe>; + avgGrownStalkPerBdvPerSeason?: InputMaybe; + avgGrownStalkPerBdvPerSeason_gt?: InputMaybe; + avgGrownStalkPerBdvPerSeason_gte?: InputMaybe; + avgGrownStalkPerBdvPerSeason_in?: InputMaybe>; + avgGrownStalkPerBdvPerSeason_lt?: InputMaybe; + avgGrownStalkPerBdvPerSeason_lte?: InputMaybe; + avgGrownStalkPerBdvPerSeason_not?: InputMaybe; + avgGrownStalkPerBdvPerSeason_not_in?: InputMaybe>; + beanMints?: InputMaybe; + beanMints_gt?: InputMaybe; + beanMints_gte?: InputMaybe; + beanMints_in?: InputMaybe>; + beanMints_lt?: InputMaybe; + beanMints_lte?: InputMaybe; + beanMints_not?: InputMaybe; + beanMints_not_in?: InputMaybe>; + beanToMaxLpGpPerBdvRatio?: InputMaybe; + beanToMaxLpGpPerBdvRatio_gt?: InputMaybe; + beanToMaxLpGpPerBdvRatio_gte?: InputMaybe; + beanToMaxLpGpPerBdvRatio_in?: InputMaybe>; + beanToMaxLpGpPerBdvRatio_lt?: InputMaybe; + beanToMaxLpGpPerBdvRatio_lte?: InputMaybe; + beanToMaxLpGpPerBdvRatio_not?: InputMaybe; + beanToMaxLpGpPerBdvRatio_not_in?: InputMaybe>; + beanstalk?: InputMaybe; + beanstalk_?: InputMaybe; + beanstalk_contains?: InputMaybe; + beanstalk_contains_nocase?: InputMaybe; + beanstalk_ends_with?: InputMaybe; + beanstalk_ends_with_nocase?: InputMaybe; + beanstalk_gt?: InputMaybe; + beanstalk_gte?: InputMaybe; + beanstalk_in?: InputMaybe>; + beanstalk_lt?: InputMaybe; + beanstalk_lte?: InputMaybe; + beanstalk_not?: InputMaybe; + beanstalk_not_contains?: InputMaybe; + beanstalk_not_contains_nocase?: InputMaybe; + beanstalk_not_ends_with?: InputMaybe; + beanstalk_not_ends_with_nocase?: InputMaybe; + beanstalk_not_in?: InputMaybe>; + beanstalk_not_starts_with?: InputMaybe; + beanstalk_not_starts_with_nocase?: InputMaybe; + beanstalk_starts_with?: InputMaybe; + beanstalk_starts_with_nocase?: InputMaybe; + bonusStalkConvertUp?: InputMaybe; + bonusStalkConvertUp_gt?: InputMaybe; + bonusStalkConvertUp_gte?: InputMaybe; + bonusStalkConvertUp_in?: InputMaybe>; + bonusStalkConvertUp_lt?: InputMaybe; + bonusStalkConvertUp_lte?: InputMaybe; + bonusStalkConvertUp_not?: InputMaybe; + bonusStalkConvertUp_not_in?: InputMaybe>; + convertDownPenalty?: InputMaybe; + convertDownPenalty_gt?: InputMaybe; + convertDownPenalty_gte?: InputMaybe; + convertDownPenalty_in?: InputMaybe>; + convertDownPenalty_lt?: InputMaybe; + convertDownPenalty_lte?: InputMaybe; + convertDownPenalty_not?: InputMaybe; + convertDownPenalty_not_in?: InputMaybe>; + cropRatio?: InputMaybe; + cropRatio_gt?: InputMaybe; + cropRatio_gte?: InputMaybe; + cropRatio_in?: InputMaybe>; + cropRatio_lt?: InputMaybe; + cropRatio_lte?: InputMaybe; + cropRatio_not?: InputMaybe; + cropRatio_not_in?: InputMaybe>; + dailySnapshots_?: InputMaybe; + depositedBDV?: InputMaybe; + depositedBDV_gt?: InputMaybe; + depositedBDV_gte?: InputMaybe; + depositedBDV_in?: InputMaybe>; + depositedBDV_lt?: InputMaybe; + depositedBDV_lte?: InputMaybe; + depositedBDV_not?: InputMaybe; + depositedBDV_not_in?: InputMaybe>; + dewhitelistedTokens?: InputMaybe>; + dewhitelistedTokens_contains?: InputMaybe>; + dewhitelistedTokens_contains_nocase?: InputMaybe>; + dewhitelistedTokens_not?: InputMaybe>; + dewhitelistedTokens_not_contains?: InputMaybe>; + dewhitelistedTokens_not_contains_nocase?: InputMaybe>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + germinatingStalk?: InputMaybe; + germinatingStalk_gt?: InputMaybe; + germinatingStalk_gte?: InputMaybe; + germinatingStalk_in?: InputMaybe>; + germinatingStalk_lt?: InputMaybe; + germinatingStalk_lte?: InputMaybe; + germinatingStalk_not?: InputMaybe; + germinatingStalk_not_in?: InputMaybe>; + grownStalkPerSeason?: InputMaybe; + grownStalkPerSeason_gt?: InputMaybe; + grownStalkPerSeason_gte?: InputMaybe; + grownStalkPerSeason_in?: InputMaybe>; + grownStalkPerSeason_lt?: InputMaybe; + grownStalkPerSeason_lte?: InputMaybe; + grownStalkPerSeason_not?: InputMaybe; + grownStalkPerSeason_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + marketPerformanceSeasonals_?: InputMaybe; + or?: InputMaybe>>; + penalizedStalkConvertDown?: InputMaybe; + penalizedStalkConvertDown_gt?: InputMaybe; + penalizedStalkConvertDown_gte?: InputMaybe; + penalizedStalkConvertDown_in?: InputMaybe>; + penalizedStalkConvertDown_lt?: InputMaybe; + penalizedStalkConvertDown_lte?: InputMaybe; + penalizedStalkConvertDown_not?: InputMaybe; + penalizedStalkConvertDown_not_in?: InputMaybe>; + plantableStalk?: InputMaybe; + plantableStalk_gt?: InputMaybe; + plantableStalk_gte?: InputMaybe; + plantableStalk_in?: InputMaybe>; + plantableStalk_lt?: InputMaybe; + plantableStalk_lte?: InputMaybe; + plantableStalk_not?: InputMaybe; + plantableStalk_not_in?: InputMaybe>; + plantedBeans?: InputMaybe; + plantedBeans_gt?: InputMaybe; + plantedBeans_gte?: InputMaybe; + plantedBeans_in?: InputMaybe>; + plantedBeans_lt?: InputMaybe; + plantedBeans_lte?: InputMaybe; + plantedBeans_not?: InputMaybe; + plantedBeans_not_in?: InputMaybe>; + roots?: InputMaybe; + roots_gt?: InputMaybe; + roots_gte?: InputMaybe; + roots_in?: InputMaybe>; + roots_lt?: InputMaybe; + roots_lte?: InputMaybe; + roots_not?: InputMaybe; + roots_not_in?: InputMaybe>; + stalk?: InputMaybe; + stalk_gt?: InputMaybe; + stalk_gte?: InputMaybe; + stalk_in?: InputMaybe>; + stalk_lt?: InputMaybe; + stalk_lte?: InputMaybe; + stalk_not?: InputMaybe; + stalk_not_in?: InputMaybe>; + totalBdvConvertUp?: InputMaybe; + totalBdvConvertUpBonus?: InputMaybe; + totalBdvConvertUpBonus_gt?: InputMaybe; + totalBdvConvertUpBonus_gte?: InputMaybe; + totalBdvConvertUpBonus_in?: InputMaybe>; + totalBdvConvertUpBonus_lt?: InputMaybe; + totalBdvConvertUpBonus_lte?: InputMaybe; + totalBdvConvertUpBonus_not?: InputMaybe; + totalBdvConvertUpBonus_not_in?: InputMaybe>; + totalBdvConvertUp_gt?: InputMaybe; + totalBdvConvertUp_gte?: InputMaybe; + totalBdvConvertUp_in?: InputMaybe>; + totalBdvConvertUp_lt?: InputMaybe; + totalBdvConvertUp_lte?: InputMaybe; + totalBdvConvertUp_not?: InputMaybe; + totalBdvConvertUp_not_in?: InputMaybe>; + unmigratedL1DepositedBdv?: InputMaybe; + unmigratedL1DepositedBdv_gt?: InputMaybe; + unmigratedL1DepositedBdv_gte?: InputMaybe; + unmigratedL1DepositedBdv_in?: InputMaybe>; + unmigratedL1DepositedBdv_lt?: InputMaybe; + unmigratedL1DepositedBdv_lte?: InputMaybe; + unmigratedL1DepositedBdv_not?: InputMaybe; + unmigratedL1DepositedBdv_not_in?: InputMaybe>; + unpenalizedStalkConvertDown?: InputMaybe; + unpenalizedStalkConvertDown_gt?: InputMaybe; + unpenalizedStalkConvertDown_gte?: InputMaybe; + unpenalizedStalkConvertDown_in?: InputMaybe>; + unpenalizedStalkConvertDown_lt?: InputMaybe; + unpenalizedStalkConvertDown_lte?: InputMaybe; + unpenalizedStalkConvertDown_not?: InputMaybe; + unpenalizedStalkConvertDown_not_in?: InputMaybe>; + whitelistedTokens?: InputMaybe>; + whitelistedTokens_contains?: InputMaybe>; + whitelistedTokens_contains_nocase?: InputMaybe>; + whitelistedTokens_not?: InputMaybe>; + whitelistedTokens_not_contains?: InputMaybe>; + whitelistedTokens_not_contains_nocase?: InputMaybe>; +}; + +export enum Silo_OrderBy { + ActiveFarmers = 'activeFarmers', + AllWhitelistedTokens = 'allWhitelistedTokens', + Assets = 'assets', + AvgConvertDownPenalty = 'avgConvertDownPenalty', + AvgGrownStalkPerBdvPerSeason = 'avgGrownStalkPerBdvPerSeason', + BeanMints = 'beanMints', + BeanToMaxLpGpPerBdvRatio = 'beanToMaxLpGpPerBdvRatio', + Beanstalk = 'beanstalk', + BeanstalkFertilizer1155 = 'beanstalk__fertilizer1155', + BeanstalkId = 'beanstalk__id', + BeanstalkLastSeason = 'beanstalk__lastSeason', + BeanstalkToken = 'beanstalk__token', + BonusStalkConvertUp = 'bonusStalkConvertUp', + ConvertDownPenalty = 'convertDownPenalty', + CropRatio = 'cropRatio', + DailySnapshots = 'dailySnapshots', + DepositedBdv = 'depositedBDV', + DewhitelistedTokens = 'dewhitelistedTokens', + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + GerminatingStalk = 'germinatingStalk', + GrownStalkPerSeason = 'grownStalkPerSeason', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + MarketPerformanceSeasonals = 'marketPerformanceSeasonals', + PenalizedStalkConvertDown = 'penalizedStalkConvertDown', + PlantableStalk = 'plantableStalk', + PlantedBeans = 'plantedBeans', + Roots = 'roots', + Stalk = 'stalk', + TotalBdvConvertUp = 'totalBdvConvertUp', + TotalBdvConvertUpBonus = 'totalBdvConvertUpBonus', + UnmigratedL1DepositedBdv = 'unmigratedL1DepositedBdv', + UnpenalizedStalkConvertDown = 'unpenalizedStalkConvertDown', + WhitelistedTokens = 'whitelistedTokens' +} + +export type Subscription = { + __typename?: 'Subscription'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + beanstalk?: Maybe; + beanstalks: Array; + chop?: Maybe; + chops: Array; + farmer?: Maybe; + farmers: Array; + fertilizer?: Maybe; + fertilizerBalance?: Maybe; + fertilizerBalances: Array; + fertilizerToken?: Maybe; + fertilizerTokens: Array; + fertilizerYield?: Maybe; + fertilizerYields: Array; + fertilizers: Array; + field?: Maybe; + fieldDailySnapshot?: Maybe; + fieldDailySnapshots: Array; + fieldHourlySnapshot?: Maybe; + fieldHourlySnapshots: Array; + fields: Array; + gaugesInfo?: Maybe; + gaugesInfoDailySnapshot?: Maybe; + gaugesInfoDailySnapshots: Array; + gaugesInfoHourlySnapshot?: Maybe; + gaugesInfoHourlySnapshots: Array; + gaugesInfos: Array; + germinating?: Maybe; + germinatings: Array; + marketPerformanceSeasonal?: Maybe; + marketPerformanceSeasonals: Array; + marketplaceEvent?: Maybe; + marketplaceEvents: Array; + plot?: Maybe; + plots: Array; + podFill?: Maybe; + podFills: Array; + podListing?: Maybe; + podListingCancelled?: Maybe; + podListingCancelleds: Array; + podListingCreated?: Maybe; + podListingCreateds: Array; + podListingFilled?: Maybe; + podListingFilleds: Array; + podListings: Array; + podMarketplace?: Maybe; + podMarketplaceDailySnapshot?: Maybe; + podMarketplaceDailySnapshots: Array; + podMarketplaceHourlySnapshot?: Maybe; + podMarketplaceHourlySnapshots: Array; + podMarketplaces: Array; + podOrder?: Maybe; + podOrderCancelled?: Maybe; + podOrderCancelleds: Array; + podOrderCreated?: Maybe; + podOrderCreateds: Array; + podOrderFilled?: Maybe; + podOrderFilleds: Array; + podOrders: Array; + prevFarmerGerminatingEvent?: Maybe; + prevFarmerGerminatingEvents: Array; + season?: Maybe; + seasons: Array; + silo?: Maybe; + siloAsset?: Maybe; + siloAssetDailySnapshot?: Maybe; + siloAssetDailySnapshots: Array; + siloAssetHourlySnapshot?: Maybe; + siloAssetHourlySnapshots: Array; + siloAssets: Array; + siloDailySnapshot?: Maybe; + siloDailySnapshots: Array; + siloDeposit?: Maybe; + siloDeposits: Array; + siloHourlySnapshot?: Maybe; + siloHourlySnapshots: Array; + siloWithdraw?: Maybe; + siloWithdraws: Array; + siloYield?: Maybe; + siloYields: Array; + silos: Array; + tokenYield?: Maybe; + tokenYields: Array; + tractor?: Maybe; + tractorDailySnapshot?: Maybe; + tractorDailySnapshots: Array; + tractorHourlySnapshot?: Maybe; + tractorHourlySnapshots: Array; + tractorReward?: Maybe; + tractorRewards: Array; + tractors: Array; + unripeToken?: Maybe; + unripeTokenDailySnapshot?: Maybe; + unripeTokenDailySnapshots: Array; + unripeTokenHourlySnapshot?: Maybe; + unripeTokenHourlySnapshots: Array; + unripeTokens: Array; + version?: Maybe; + versions: Array; + wellPlenties: Array; + wellPlenty?: Maybe; + whitelistTokenDailySnapshot?: Maybe; + whitelistTokenDailySnapshots: Array; + whitelistTokenHourlySnapshot?: Maybe; + whitelistTokenHourlySnapshots: Array; + whitelistTokenSetting?: Maybe; + whitelistTokenSettings: Array; + wrappedDepositERC20?: Maybe; + wrappedDepositERC20DailySnapshot?: Maybe; + wrappedDepositERC20DailySnapshots: Array; + wrappedDepositERC20HourlySnapshot?: Maybe; + wrappedDepositERC20HourlySnapshots: Array; + wrappedDepositERC20S: Array; +}; + + +export type Subscription_MetaArgs = { + block?: InputMaybe; +}; + + +export type SubscriptionBeanstalkArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBeanstalksArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionChopArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionChopsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFarmerArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFarmersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFertilizerArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFertilizerBalanceArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFertilizerBalancesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFertilizerTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFertilizerTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFertilizerYieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFertilizerYieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFertilizersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFieldDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFieldDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFieldHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFieldHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionGaugesInfoArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionGaugesInfoDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionGaugesInfoDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionGaugesInfoHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionGaugesInfoHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionGaugesInfosArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionGerminatingArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionGerminatingsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionMarketPerformanceSeasonalArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionMarketPerformanceSeasonalsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionMarketplaceEventArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionMarketplaceEventsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPlotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPlotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodFillArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodFillsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodListingArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodListingCancelledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodListingCancelledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodListingCreatedArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodListingCreatedsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodListingFilledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodListingFilledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodListingsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodMarketplaceArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodMarketplaceDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodMarketplaceDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodMarketplaceHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodMarketplaceHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodMarketplacesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodOrderArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodOrderCancelledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodOrderCancelledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodOrderCreatedArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodOrderCreatedsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodOrderFilledArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPodOrderFilledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPodOrdersArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPrevFarmerGerminatingEventArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPrevFarmerGerminatingEventsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSeasonArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSeasonsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloAssetArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloAssetDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloAssetDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloAssetHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloAssetHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloAssetsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloDepositArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloDepositsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloWithdrawArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloWithdrawsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSiloYieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSiloYieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSilosArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokenYieldArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenYieldsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTractorArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTractorDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTractorDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTractorHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTractorHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTractorRewardArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTractorRewardsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTractorsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionUnripeTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionUnripeTokenDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionUnripeTokenDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionUnripeTokenHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionUnripeTokenHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionUnripeTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionVersionArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionVersionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellPlentiesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWellPlentyArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWhitelistTokenDailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWhitelistTokenDailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWhitelistTokenHourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWhitelistTokenHourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWhitelistTokenSettingArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWhitelistTokenSettingsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWrappedDepositErc20Args = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWrappedDepositErc20DailySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWrappedDepositErc20DailySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWrappedDepositErc20HourlySnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']['input']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionWrappedDepositErc20HourlySnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionWrappedDepositErc20SArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type TokenYield = { + __typename?: 'TokenYield'; + /** Bean APY for season */ + beanAPY: Scalars['BigDecimal']['output']; + /** Unix timestamp of update */ + createdAt: Scalars['BigInt']['output']; + /** Token address - season - EMA window */ + id: Scalars['Bytes']['output']; + /** Season for APY calculation */ + season: Scalars['Int']['output']; + /** Related silo yield entity */ + siloYield: SiloYield; + /** Stalk APY for season */ + stalkAPY: Scalars['BigDecimal']['output']; + /** Token being calculated */ + token: Scalars['Bytes']['output']; +}; + +export type TokenYield_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + beanAPY?: InputMaybe; + beanAPY_gt?: InputMaybe; + beanAPY_gte?: InputMaybe; + beanAPY_in?: InputMaybe>; + beanAPY_lt?: InputMaybe; + beanAPY_lte?: InputMaybe; + beanAPY_not?: InputMaybe; + beanAPY_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + siloYield?: InputMaybe; + siloYield_?: InputMaybe; + siloYield_contains?: InputMaybe; + siloYield_contains_nocase?: InputMaybe; + siloYield_ends_with?: InputMaybe; + siloYield_ends_with_nocase?: InputMaybe; + siloYield_gt?: InputMaybe; + siloYield_gte?: InputMaybe; + siloYield_in?: InputMaybe>; + siloYield_lt?: InputMaybe; + siloYield_lte?: InputMaybe; + siloYield_not?: InputMaybe; + siloYield_not_contains?: InputMaybe; + siloYield_not_contains_nocase?: InputMaybe; + siloYield_not_ends_with?: InputMaybe; + siloYield_not_ends_with_nocase?: InputMaybe; + siloYield_not_in?: InputMaybe>; + siloYield_not_starts_with?: InputMaybe; + siloYield_not_starts_with_nocase?: InputMaybe; + siloYield_starts_with?: InputMaybe; + siloYield_starts_with_nocase?: InputMaybe; + stalkAPY?: InputMaybe; + stalkAPY_gt?: InputMaybe; + stalkAPY_gte?: InputMaybe; + stalkAPY_in?: InputMaybe>; + stalkAPY_lt?: InputMaybe; + stalkAPY_lte?: InputMaybe; + stalkAPY_not?: InputMaybe; + stalkAPY_not_in?: InputMaybe>; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; +}; + +export enum TokenYield_OrderBy { + BeanApy = 'beanAPY', + CreatedAt = 'createdAt', + Id = 'id', + Season = 'season', + SiloYield = 'siloYield', + SiloYieldBeansPerSeasonEma = 'siloYield__beansPerSeasonEMA', + SiloYieldBeta = 'siloYield__beta', + SiloYieldCreatedAt = 'siloYield__createdAt', + SiloYieldEmaWindow = 'siloYield__emaWindow', + SiloYieldId = 'siloYield__id', + SiloYieldSeason = 'siloYield__season', + SiloYieldU = 'siloYield__u', + StalkApy = 'stalkAPY', + Token = 'token' +} + +export type Tractor = { + __typename?: 'Tractor'; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** 'tractor' */ + id: Scalars['ID']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Total number of tractor executions (# times the `Tractor` event is emitted) */ + totalExecutions: Scalars['Int']['output']; + /** Total amount of Bean tips paid from operator to publisher. Does not include any other tokens. */ + totalNegBeanTips: Scalars['BigInt']['output']; + /** Total amount of Bean tips paid from publisher to operator. Does not include any other tokens. */ + totalPosBeanTips: Scalars['BigInt']['output']; +}; + + +export type TractorDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TractorHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type TractorDailySnapshot = { + __typename?: 'TractorDailySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaTotalExecutions: Scalars['Int']['output']; + deltaTotalNegBeanTips: Scalars['BigInt']['output']; + deltaTotalPosBeanTips: Scalars['BigInt']['output']; + /** Tractor ID - Day */ + id: Scalars['ID']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Point in time totalExecutions */ + totalExecutions: Scalars['Int']['output']; + /** Point in time totalNegBeanTips */ + totalNegBeanTips: Scalars['BigInt']['output']; + /** Point in time totalPosBeanTips */ + totalPosBeanTips: Scalars['BigInt']['output']; + /** Tractor associated with this snapshot */ + tractor: Tractor; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type TractorDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaTotalExecutions?: InputMaybe; + deltaTotalExecutions_gt?: InputMaybe; + deltaTotalExecutions_gte?: InputMaybe; + deltaTotalExecutions_in?: InputMaybe>; + deltaTotalExecutions_lt?: InputMaybe; + deltaTotalExecutions_lte?: InputMaybe; + deltaTotalExecutions_not?: InputMaybe; + deltaTotalExecutions_not_in?: InputMaybe>; + deltaTotalNegBeanTips?: InputMaybe; + deltaTotalNegBeanTips_gt?: InputMaybe; + deltaTotalNegBeanTips_gte?: InputMaybe; + deltaTotalNegBeanTips_in?: InputMaybe>; + deltaTotalNegBeanTips_lt?: InputMaybe; + deltaTotalNegBeanTips_lte?: InputMaybe; + deltaTotalNegBeanTips_not?: InputMaybe; + deltaTotalNegBeanTips_not_in?: InputMaybe>; + deltaTotalPosBeanTips?: InputMaybe; + deltaTotalPosBeanTips_gt?: InputMaybe; + deltaTotalPosBeanTips_gte?: InputMaybe; + deltaTotalPosBeanTips_in?: InputMaybe>; + deltaTotalPosBeanTips_lt?: InputMaybe; + deltaTotalPosBeanTips_lte?: InputMaybe; + deltaTotalPosBeanTips_not?: InputMaybe; + deltaTotalPosBeanTips_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + totalExecutions?: InputMaybe; + totalExecutions_gt?: InputMaybe; + totalExecutions_gte?: InputMaybe; + totalExecutions_in?: InputMaybe>; + totalExecutions_lt?: InputMaybe; + totalExecutions_lte?: InputMaybe; + totalExecutions_not?: InputMaybe; + totalExecutions_not_in?: InputMaybe>; + totalNegBeanTips?: InputMaybe; + totalNegBeanTips_gt?: InputMaybe; + totalNegBeanTips_gte?: InputMaybe; + totalNegBeanTips_in?: InputMaybe>; + totalNegBeanTips_lt?: InputMaybe; + totalNegBeanTips_lte?: InputMaybe; + totalNegBeanTips_not?: InputMaybe; + totalNegBeanTips_not_in?: InputMaybe>; + totalPosBeanTips?: InputMaybe; + totalPosBeanTips_gt?: InputMaybe; + totalPosBeanTips_gte?: InputMaybe; + totalPosBeanTips_in?: InputMaybe>; + totalPosBeanTips_lt?: InputMaybe; + totalPosBeanTips_lte?: InputMaybe; + totalPosBeanTips_not?: InputMaybe; + totalPosBeanTips_not_in?: InputMaybe>; + tractor?: InputMaybe; + tractor_?: InputMaybe; + tractor_contains?: InputMaybe; + tractor_contains_nocase?: InputMaybe; + tractor_ends_with?: InputMaybe; + tractor_ends_with_nocase?: InputMaybe; + tractor_gt?: InputMaybe; + tractor_gte?: InputMaybe; + tractor_in?: InputMaybe>; + tractor_lt?: InputMaybe; + tractor_lte?: InputMaybe; + tractor_not?: InputMaybe; + tractor_not_contains?: InputMaybe; + tractor_not_contains_nocase?: InputMaybe; + tractor_not_ends_with?: InputMaybe; + tractor_not_ends_with_nocase?: InputMaybe; + tractor_not_in?: InputMaybe>; + tractor_not_starts_with?: InputMaybe; + tractor_not_starts_with_nocase?: InputMaybe; + tractor_starts_with?: InputMaybe; + tractor_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum TractorDailySnapshot_OrderBy { + CreatedAt = 'createdAt', + DeltaTotalExecutions = 'deltaTotalExecutions', + DeltaTotalNegBeanTips = 'deltaTotalNegBeanTips', + DeltaTotalPosBeanTips = 'deltaTotalPosBeanTips', + Id = 'id', + Season = 'season', + TotalExecutions = 'totalExecutions', + TotalNegBeanTips = 'totalNegBeanTips', + TotalPosBeanTips = 'totalPosBeanTips', + Tractor = 'tractor', + TractorId = 'tractor__id', + TractorLastDailySnapshotDay = 'tractor__lastDailySnapshotDay', + TractorLastHourlySnapshotSeason = 'tractor__lastHourlySnapshotSeason', + TractorTotalExecutions = 'tractor__totalExecutions', + TractorTotalNegBeanTips = 'tractor__totalNegBeanTips', + TractorTotalPosBeanTips = 'tractor__totalPosBeanTips', + UpdatedAt = 'updatedAt' +} + +export type TractorHourlySnapshot = { + __typename?: 'TractorHourlySnapshot'; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaTotalExecutions: Scalars['Int']['output']; + deltaTotalNegBeanTips: Scalars['BigInt']['output']; + deltaTotalPosBeanTips: Scalars['BigInt']['output']; + /** Tractor ID - Season */ + id: Scalars['ID']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Point in time totalExecutions */ + totalExecutions: Scalars['Int']['output']; + /** Point in time totalNegBeanTips */ + totalNegBeanTips: Scalars['BigInt']['output']; + /** Point in time totalPosBeanTips */ + totalPosBeanTips: Scalars['BigInt']['output']; + /** Tractor associated with this snapshot */ + tractor: Tractor; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type TractorHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaTotalExecutions?: InputMaybe; + deltaTotalExecutions_gt?: InputMaybe; + deltaTotalExecutions_gte?: InputMaybe; + deltaTotalExecutions_in?: InputMaybe>; + deltaTotalExecutions_lt?: InputMaybe; + deltaTotalExecutions_lte?: InputMaybe; + deltaTotalExecutions_not?: InputMaybe; + deltaTotalExecutions_not_in?: InputMaybe>; + deltaTotalNegBeanTips?: InputMaybe; + deltaTotalNegBeanTips_gt?: InputMaybe; + deltaTotalNegBeanTips_gte?: InputMaybe; + deltaTotalNegBeanTips_in?: InputMaybe>; + deltaTotalNegBeanTips_lt?: InputMaybe; + deltaTotalNegBeanTips_lte?: InputMaybe; + deltaTotalNegBeanTips_not?: InputMaybe; + deltaTotalNegBeanTips_not_in?: InputMaybe>; + deltaTotalPosBeanTips?: InputMaybe; + deltaTotalPosBeanTips_gt?: InputMaybe; + deltaTotalPosBeanTips_gte?: InputMaybe; + deltaTotalPosBeanTips_in?: InputMaybe>; + deltaTotalPosBeanTips_lt?: InputMaybe; + deltaTotalPosBeanTips_lte?: InputMaybe; + deltaTotalPosBeanTips_not?: InputMaybe; + deltaTotalPosBeanTips_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + totalExecutions?: InputMaybe; + totalExecutions_gt?: InputMaybe; + totalExecutions_gte?: InputMaybe; + totalExecutions_in?: InputMaybe>; + totalExecutions_lt?: InputMaybe; + totalExecutions_lte?: InputMaybe; + totalExecutions_not?: InputMaybe; + totalExecutions_not_in?: InputMaybe>; + totalNegBeanTips?: InputMaybe; + totalNegBeanTips_gt?: InputMaybe; + totalNegBeanTips_gte?: InputMaybe; + totalNegBeanTips_in?: InputMaybe>; + totalNegBeanTips_lt?: InputMaybe; + totalNegBeanTips_lte?: InputMaybe; + totalNegBeanTips_not?: InputMaybe; + totalNegBeanTips_not_in?: InputMaybe>; + totalPosBeanTips?: InputMaybe; + totalPosBeanTips_gt?: InputMaybe; + totalPosBeanTips_gte?: InputMaybe; + totalPosBeanTips_in?: InputMaybe>; + totalPosBeanTips_lt?: InputMaybe; + totalPosBeanTips_lte?: InputMaybe; + totalPosBeanTips_not?: InputMaybe; + totalPosBeanTips_not_in?: InputMaybe>; + tractor?: InputMaybe; + tractor_?: InputMaybe; + tractor_contains?: InputMaybe; + tractor_contains_nocase?: InputMaybe; + tractor_ends_with?: InputMaybe; + tractor_ends_with_nocase?: InputMaybe; + tractor_gt?: InputMaybe; + tractor_gte?: InputMaybe; + tractor_in?: InputMaybe>; + tractor_lt?: InputMaybe; + tractor_lte?: InputMaybe; + tractor_not?: InputMaybe; + tractor_not_contains?: InputMaybe; + tractor_not_contains_nocase?: InputMaybe; + tractor_not_ends_with?: InputMaybe; + tractor_not_ends_with_nocase?: InputMaybe; + tractor_not_in?: InputMaybe>; + tractor_not_starts_with?: InputMaybe; + tractor_not_starts_with_nocase?: InputMaybe; + tractor_starts_with?: InputMaybe; + tractor_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum TractorHourlySnapshot_OrderBy { + CreatedAt = 'createdAt', + DeltaTotalExecutions = 'deltaTotalExecutions', + DeltaTotalNegBeanTips = 'deltaTotalNegBeanTips', + DeltaTotalPosBeanTips = 'deltaTotalPosBeanTips', + Id = 'id', + Season = 'season', + TotalExecutions = 'totalExecutions', + TotalNegBeanTips = 'totalNegBeanTips', + TotalPosBeanTips = 'totalPosBeanTips', + Tractor = 'tractor', + TractorId = 'tractor__id', + TractorLastDailySnapshotDay = 'tractor__lastDailySnapshotDay', + TractorLastHourlySnapshotSeason = 'tractor__lastHourlySnapshotSeason', + TractorTotalExecutions = 'tractor__totalExecutions', + TractorTotalNegBeanTips = 'tractor__totalNegBeanTips', + TractorTotalPosBeanTips = 'tractor__totalPosBeanTips', + UpdatedAt = 'updatedAt' +} + +export type TractorReward = { + __typename?: 'TractorReward'; + /** The farmer associated to this reward */ + farmer: Farmer; + /** {farmer}-{rewardType}-{rewardToken} */ + id: Scalars['ID']['output']; + /** For account=operator - Total executed orders with these reward settings. */ + operatorExecutions: Scalars['Int']['output']; + /** For account=operator - Total amount paid to the publisher for executed orders. */ + operatorNegAmount: Scalars['BigInt']['output']; + /** For account=operator - Total amount received from the publisher for executed orders. */ + operatorPosAmount: Scalars['BigInt']['output']; + /** For account=publisher - Total executed orders with these reward settings. */ + publisherExecutions: Scalars['Int']['output']; + /** For account=publisher - Total amount received from the operator for executed orders. */ + publisherNegAmount: Scalars['BigInt']['output']; + /** For account=publisher - Total amount paid to the operator for executed orders. */ + publisherPosAmount: Scalars['BigInt']['output']; + /** The token given for this reward */ + rewardToken: Scalars['Bytes']['output']; + /** The type of this reward */ + rewardType: Scalars['Int']['output']; +}; + +export type TractorReward_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + farmer?: InputMaybe; + farmer_?: InputMaybe; + farmer_contains?: InputMaybe; + farmer_contains_nocase?: InputMaybe; + farmer_ends_with?: InputMaybe; + farmer_ends_with_nocase?: InputMaybe; + farmer_gt?: InputMaybe; + farmer_gte?: InputMaybe; + farmer_in?: InputMaybe>; + farmer_lt?: InputMaybe; + farmer_lte?: InputMaybe; + farmer_not?: InputMaybe; + farmer_not_contains?: InputMaybe; + farmer_not_contains_nocase?: InputMaybe; + farmer_not_ends_with?: InputMaybe; + farmer_not_ends_with_nocase?: InputMaybe; + farmer_not_in?: InputMaybe>; + farmer_not_starts_with?: InputMaybe; + farmer_not_starts_with_nocase?: InputMaybe; + farmer_starts_with?: InputMaybe; + farmer_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + operatorExecutions?: InputMaybe; + operatorExecutions_gt?: InputMaybe; + operatorExecutions_gte?: InputMaybe; + operatorExecutions_in?: InputMaybe>; + operatorExecutions_lt?: InputMaybe; + operatorExecutions_lte?: InputMaybe; + operatorExecutions_not?: InputMaybe; + operatorExecutions_not_in?: InputMaybe>; + operatorNegAmount?: InputMaybe; + operatorNegAmount_gt?: InputMaybe; + operatorNegAmount_gte?: InputMaybe; + operatorNegAmount_in?: InputMaybe>; + operatorNegAmount_lt?: InputMaybe; + operatorNegAmount_lte?: InputMaybe; + operatorNegAmount_not?: InputMaybe; + operatorNegAmount_not_in?: InputMaybe>; + operatorPosAmount?: InputMaybe; + operatorPosAmount_gt?: InputMaybe; + operatorPosAmount_gte?: InputMaybe; + operatorPosAmount_in?: InputMaybe>; + operatorPosAmount_lt?: InputMaybe; + operatorPosAmount_lte?: InputMaybe; + operatorPosAmount_not?: InputMaybe; + operatorPosAmount_not_in?: InputMaybe>; + or?: InputMaybe>>; + publisherExecutions?: InputMaybe; + publisherExecutions_gt?: InputMaybe; + publisherExecutions_gte?: InputMaybe; + publisherExecutions_in?: InputMaybe>; + publisherExecutions_lt?: InputMaybe; + publisherExecutions_lte?: InputMaybe; + publisherExecutions_not?: InputMaybe; + publisherExecutions_not_in?: InputMaybe>; + publisherNegAmount?: InputMaybe; + publisherNegAmount_gt?: InputMaybe; + publisherNegAmount_gte?: InputMaybe; + publisherNegAmount_in?: InputMaybe>; + publisherNegAmount_lt?: InputMaybe; + publisherNegAmount_lte?: InputMaybe; + publisherNegAmount_not?: InputMaybe; + publisherNegAmount_not_in?: InputMaybe>; + publisherPosAmount?: InputMaybe; + publisherPosAmount_gt?: InputMaybe; + publisherPosAmount_gte?: InputMaybe; + publisherPosAmount_in?: InputMaybe>; + publisherPosAmount_lt?: InputMaybe; + publisherPosAmount_lte?: InputMaybe; + publisherPosAmount_not?: InputMaybe; + publisherPosAmount_not_in?: InputMaybe>; + rewardToken?: InputMaybe; + rewardToken_contains?: InputMaybe; + rewardToken_gt?: InputMaybe; + rewardToken_gte?: InputMaybe; + rewardToken_in?: InputMaybe>; + rewardToken_lt?: InputMaybe; + rewardToken_lte?: InputMaybe; + rewardToken_not?: InputMaybe; + rewardToken_not_contains?: InputMaybe; + rewardToken_not_in?: InputMaybe>; + rewardType?: InputMaybe; + rewardType_gt?: InputMaybe; + rewardType_gte?: InputMaybe; + rewardType_in?: InputMaybe>; + rewardType_lt?: InputMaybe; + rewardType_lte?: InputMaybe; + rewardType_not?: InputMaybe; + rewardType_not_in?: InputMaybe>; +}; + +export enum TractorReward_OrderBy { + Farmer = 'farmer', + FarmerCreationBlock = 'farmer__creationBlock', + FarmerId = 'farmer__id', + Id = 'id', + OperatorExecutions = 'operatorExecutions', + OperatorNegAmount = 'operatorNegAmount', + OperatorPosAmount = 'operatorPosAmount', + PublisherExecutions = 'publisherExecutions', + PublisherNegAmount = 'publisherNegAmount', + PublisherPosAmount = 'publisherPosAmount', + RewardToken = 'rewardToken', + RewardType = 'rewardType' +} + +export type Tractor_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + dailySnapshots_?: InputMaybe; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; + totalExecutions?: InputMaybe; + totalExecutions_gt?: InputMaybe; + totalExecutions_gte?: InputMaybe; + totalExecutions_in?: InputMaybe>; + totalExecutions_lt?: InputMaybe; + totalExecutions_lte?: InputMaybe; + totalExecutions_not?: InputMaybe; + totalExecutions_not_in?: InputMaybe>; + totalNegBeanTips?: InputMaybe; + totalNegBeanTips_gt?: InputMaybe; + totalNegBeanTips_gte?: InputMaybe; + totalNegBeanTips_in?: InputMaybe>; + totalNegBeanTips_lt?: InputMaybe; + totalNegBeanTips_lte?: InputMaybe; + totalNegBeanTips_not?: InputMaybe; + totalNegBeanTips_not_in?: InputMaybe>; + totalPosBeanTips?: InputMaybe; + totalPosBeanTips_gt?: InputMaybe; + totalPosBeanTips_gte?: InputMaybe; + totalPosBeanTips_in?: InputMaybe>; + totalPosBeanTips_lt?: InputMaybe; + totalPosBeanTips_lte?: InputMaybe; + totalPosBeanTips_not?: InputMaybe; + totalPosBeanTips_not_in?: InputMaybe>; +}; + +export enum Tractor_OrderBy { + DailySnapshots = 'dailySnapshots', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + TotalExecutions = 'totalExecutions', + TotalNegBeanTips = 'totalNegBeanTips', + TotalPosBeanTips = 'totalPosBeanTips' +} + +export type UnripeToken = { + __typename?: 'UnripeToken'; + /** The amount of `underlyingToken` corresponding to one of this unripe token (getUnderlyingPerUnripeToken) */ + amountUnderlyingOne: Scalars['BigInt']['output']; + /** The bdv of `amountUnderlyingOne` of `underlyingToken`. Assumed to not always be the same as bdv(id) */ + bdvUnderlyingOne: Scalars['BigInt']['output']; + /** The chop rate, in percent (getPercentPenalty) */ + chopRate: Scalars['BigDecimal']['output']; + /** The amount of `underlyingToken` which would be received if one of this unripe token were to be chopped (getPenalty) */ + choppableAmountOne: Scalars['BigInt']['output']; + /** The bdv that would be received if one of this unripe token were to be chopped */ + choppableBdvOne: Scalars['BigInt']['output']; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Token Address */ + id: Scalars['Bytes']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** The amount recapitalized, in percent (getRecapFundedPercent) */ + recapPercent: Scalars['BigDecimal']['output']; + /** The total amount of this unripe token which has been chopped */ + totalChoppedAmount: Scalars['BigInt']['output']; + /** The total bdv of this unripe token which has been chopped */ + totalChoppedBdv: Scalars['BigInt']['output']; + /** The total bdv of all `underlyingToken` that has been received from chopping */ + totalChoppedBdvReceived: Scalars['BigInt']['output']; + /** The total amount of `underlyingToken` for this unripe token (getTotalUnderlying) */ + totalUnderlying: Scalars['BigInt']['output']; + /** The ripe token underlying this unripe asset */ + underlyingToken: WhitelistTokenSetting; +}; + + +export type UnripeTokenDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type UnripeTokenHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type UnripeTokenDailySnapshot = { + __typename?: 'UnripeTokenDailySnapshot'; + /** Point in time amount of `underlyingToken` corresponding to one of this unripe token (getUnderlyingPerUnripeToken) */ + amountUnderlyingOne: Scalars['BigInt']['output']; + /** Point in time bdv of `amountUnderlyingOne` of `underlyingToken`. Assumed to not always be the same as bdv(id) */ + bdvUnderlyingOne: Scalars['BigInt']['output']; + /** Point in time chop rate, in percent (getPercentPenalty) */ + chopRate: Scalars['BigDecimal']['output']; + /** Point in time amount of `underlyingToken` which would be received if one of this unripe token were to be chopped (getPenalty) */ + choppableAmountOne: Scalars['BigInt']['output']; + /** Point in time bdv that would be received if one of this unripe token were to be chopped */ + choppableBdvOne: Scalars['BigInt']['output']; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** Note that the contents of this field are nonsense when deltaUnderlyingToken = true */ + deltaAmountUnderlyingOne: Scalars['BigInt']['output']; + deltaBdvUnderlyingOne: Scalars['BigInt']['output']; + deltaChopRate: Scalars['BigDecimal']['output']; + /** Note that the contents of this field are nonsense when deltaUnderlyingToken = true */ + deltaChoppableAmountOne: Scalars['BigInt']['output']; + deltaChoppableBdvOne: Scalars['BigInt']['output']; + deltaRecapPercent: Scalars['BigDecimal']['output']; + deltaTotalChoppedAmount: Scalars['BigInt']['output']; + deltaTotalChoppedBdv: Scalars['BigInt']['output']; + deltaTotalChoppedBdvReceived: Scalars['BigInt']['output']; + /** Note that the contents of this field are nonsense when deltaUnderlyingToken = true */ + deltaTotalUnderlying: Scalars['BigInt']['output']; + deltaUnderlyingToken: Scalars['Boolean']['output']; + /** UnripeToken ID - Day */ + id: Scalars['ID']['output']; + /** Point in time amount recapitalized, in percent (getRecapFundedPercent) */ + recapPercent: Scalars['BigDecimal']['output']; + /** Last season for the snapshot */ + season: Scalars['Int']['output']; + /** Point in time total amount of this unripe token which has been chopped */ + totalChoppedAmount: Scalars['BigInt']['output']; + /** Point in time total bdv of this unripe token which has been chopped */ + totalChoppedBdv: Scalars['BigInt']['output']; + /** Point in time total bdv of all `underlyingToken` that has been received from chopping */ + totalChoppedBdvReceived: Scalars['BigInt']['output']; + /** Point in time total amount of `underlyingToken` for this unripe token (getTotalUnderlying) */ + totalUnderlying: Scalars['BigInt']['output']; + /** Point in time ripe token underlying this unripe asset */ + underlyingToken: WhitelistTokenSetting; + /** Unripe token associated with this snapshot */ + unripeToken: UnripeToken; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type UnripeTokenDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amountUnderlyingOne?: InputMaybe; + amountUnderlyingOne_gt?: InputMaybe; + amountUnderlyingOne_gte?: InputMaybe; + amountUnderlyingOne_in?: InputMaybe>; + amountUnderlyingOne_lt?: InputMaybe; + amountUnderlyingOne_lte?: InputMaybe; + amountUnderlyingOne_not?: InputMaybe; + amountUnderlyingOne_not_in?: InputMaybe>; + and?: InputMaybe>>; + bdvUnderlyingOne?: InputMaybe; + bdvUnderlyingOne_gt?: InputMaybe; + bdvUnderlyingOne_gte?: InputMaybe; + bdvUnderlyingOne_in?: InputMaybe>; + bdvUnderlyingOne_lt?: InputMaybe; + bdvUnderlyingOne_lte?: InputMaybe; + bdvUnderlyingOne_not?: InputMaybe; + bdvUnderlyingOne_not_in?: InputMaybe>; + chopRate?: InputMaybe; + chopRate_gt?: InputMaybe; + chopRate_gte?: InputMaybe; + chopRate_in?: InputMaybe>; + chopRate_lt?: InputMaybe; + chopRate_lte?: InputMaybe; + chopRate_not?: InputMaybe; + chopRate_not_in?: InputMaybe>; + choppableAmountOne?: InputMaybe; + choppableAmountOne_gt?: InputMaybe; + choppableAmountOne_gte?: InputMaybe; + choppableAmountOne_in?: InputMaybe>; + choppableAmountOne_lt?: InputMaybe; + choppableAmountOne_lte?: InputMaybe; + choppableAmountOne_not?: InputMaybe; + choppableAmountOne_not_in?: InputMaybe>; + choppableBdvOne?: InputMaybe; + choppableBdvOne_gt?: InputMaybe; + choppableBdvOne_gte?: InputMaybe; + choppableBdvOne_in?: InputMaybe>; + choppableBdvOne_lt?: InputMaybe; + choppableBdvOne_lte?: InputMaybe; + choppableBdvOne_not?: InputMaybe; + choppableBdvOne_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaAmountUnderlyingOne?: InputMaybe; + deltaAmountUnderlyingOne_gt?: InputMaybe; + deltaAmountUnderlyingOne_gte?: InputMaybe; + deltaAmountUnderlyingOne_in?: InputMaybe>; + deltaAmountUnderlyingOne_lt?: InputMaybe; + deltaAmountUnderlyingOne_lte?: InputMaybe; + deltaAmountUnderlyingOne_not?: InputMaybe; + deltaAmountUnderlyingOne_not_in?: InputMaybe>; + deltaBdvUnderlyingOne?: InputMaybe; + deltaBdvUnderlyingOne_gt?: InputMaybe; + deltaBdvUnderlyingOne_gte?: InputMaybe; + deltaBdvUnderlyingOne_in?: InputMaybe>; + deltaBdvUnderlyingOne_lt?: InputMaybe; + deltaBdvUnderlyingOne_lte?: InputMaybe; + deltaBdvUnderlyingOne_not?: InputMaybe; + deltaBdvUnderlyingOne_not_in?: InputMaybe>; + deltaChopRate?: InputMaybe; + deltaChopRate_gt?: InputMaybe; + deltaChopRate_gte?: InputMaybe; + deltaChopRate_in?: InputMaybe>; + deltaChopRate_lt?: InputMaybe; + deltaChopRate_lte?: InputMaybe; + deltaChopRate_not?: InputMaybe; + deltaChopRate_not_in?: InputMaybe>; + deltaChoppableAmountOne?: InputMaybe; + deltaChoppableAmountOne_gt?: InputMaybe; + deltaChoppableAmountOne_gte?: InputMaybe; + deltaChoppableAmountOne_in?: InputMaybe>; + deltaChoppableAmountOne_lt?: InputMaybe; + deltaChoppableAmountOne_lte?: InputMaybe; + deltaChoppableAmountOne_not?: InputMaybe; + deltaChoppableAmountOne_not_in?: InputMaybe>; + deltaChoppableBdvOne?: InputMaybe; + deltaChoppableBdvOne_gt?: InputMaybe; + deltaChoppableBdvOne_gte?: InputMaybe; + deltaChoppableBdvOne_in?: InputMaybe>; + deltaChoppableBdvOne_lt?: InputMaybe; + deltaChoppableBdvOne_lte?: InputMaybe; + deltaChoppableBdvOne_not?: InputMaybe; + deltaChoppableBdvOne_not_in?: InputMaybe>; + deltaRecapPercent?: InputMaybe; + deltaRecapPercent_gt?: InputMaybe; + deltaRecapPercent_gte?: InputMaybe; + deltaRecapPercent_in?: InputMaybe>; + deltaRecapPercent_lt?: InputMaybe; + deltaRecapPercent_lte?: InputMaybe; + deltaRecapPercent_not?: InputMaybe; + deltaRecapPercent_not_in?: InputMaybe>; + deltaTotalChoppedAmount?: InputMaybe; + deltaTotalChoppedAmount_gt?: InputMaybe; + deltaTotalChoppedAmount_gte?: InputMaybe; + deltaTotalChoppedAmount_in?: InputMaybe>; + deltaTotalChoppedAmount_lt?: InputMaybe; + deltaTotalChoppedAmount_lte?: InputMaybe; + deltaTotalChoppedAmount_not?: InputMaybe; + deltaTotalChoppedAmount_not_in?: InputMaybe>; + deltaTotalChoppedBdv?: InputMaybe; + deltaTotalChoppedBdvReceived?: InputMaybe; + deltaTotalChoppedBdvReceived_gt?: InputMaybe; + deltaTotalChoppedBdvReceived_gte?: InputMaybe; + deltaTotalChoppedBdvReceived_in?: InputMaybe>; + deltaTotalChoppedBdvReceived_lt?: InputMaybe; + deltaTotalChoppedBdvReceived_lte?: InputMaybe; + deltaTotalChoppedBdvReceived_not?: InputMaybe; + deltaTotalChoppedBdvReceived_not_in?: InputMaybe>; + deltaTotalChoppedBdv_gt?: InputMaybe; + deltaTotalChoppedBdv_gte?: InputMaybe; + deltaTotalChoppedBdv_in?: InputMaybe>; + deltaTotalChoppedBdv_lt?: InputMaybe; + deltaTotalChoppedBdv_lte?: InputMaybe; + deltaTotalChoppedBdv_not?: InputMaybe; + deltaTotalChoppedBdv_not_in?: InputMaybe>; + deltaTotalUnderlying?: InputMaybe; + deltaTotalUnderlying_gt?: InputMaybe; + deltaTotalUnderlying_gte?: InputMaybe; + deltaTotalUnderlying_in?: InputMaybe>; + deltaTotalUnderlying_lt?: InputMaybe; + deltaTotalUnderlying_lte?: InputMaybe; + deltaTotalUnderlying_not?: InputMaybe; + deltaTotalUnderlying_not_in?: InputMaybe>; + deltaUnderlyingToken?: InputMaybe; + deltaUnderlyingToken_in?: InputMaybe>; + deltaUnderlyingToken_not?: InputMaybe; + deltaUnderlyingToken_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + recapPercent?: InputMaybe; + recapPercent_gt?: InputMaybe; + recapPercent_gte?: InputMaybe; + recapPercent_in?: InputMaybe>; + recapPercent_lt?: InputMaybe; + recapPercent_lte?: InputMaybe; + recapPercent_not?: InputMaybe; + recapPercent_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + totalChoppedAmount?: InputMaybe; + totalChoppedAmount_gt?: InputMaybe; + totalChoppedAmount_gte?: InputMaybe; + totalChoppedAmount_in?: InputMaybe>; + totalChoppedAmount_lt?: InputMaybe; + totalChoppedAmount_lte?: InputMaybe; + totalChoppedAmount_not?: InputMaybe; + totalChoppedAmount_not_in?: InputMaybe>; + totalChoppedBdv?: InputMaybe; + totalChoppedBdvReceived?: InputMaybe; + totalChoppedBdvReceived_gt?: InputMaybe; + totalChoppedBdvReceived_gte?: InputMaybe; + totalChoppedBdvReceived_in?: InputMaybe>; + totalChoppedBdvReceived_lt?: InputMaybe; + totalChoppedBdvReceived_lte?: InputMaybe; + totalChoppedBdvReceived_not?: InputMaybe; + totalChoppedBdvReceived_not_in?: InputMaybe>; + totalChoppedBdv_gt?: InputMaybe; + totalChoppedBdv_gte?: InputMaybe; + totalChoppedBdv_in?: InputMaybe>; + totalChoppedBdv_lt?: InputMaybe; + totalChoppedBdv_lte?: InputMaybe; + totalChoppedBdv_not?: InputMaybe; + totalChoppedBdv_not_in?: InputMaybe>; + totalUnderlying?: InputMaybe; + totalUnderlying_gt?: InputMaybe; + totalUnderlying_gte?: InputMaybe; + totalUnderlying_in?: InputMaybe>; + totalUnderlying_lt?: InputMaybe; + totalUnderlying_lte?: InputMaybe; + totalUnderlying_not?: InputMaybe; + totalUnderlying_not_in?: InputMaybe>; + underlyingToken?: InputMaybe; + underlyingToken_?: InputMaybe; + underlyingToken_contains?: InputMaybe; + underlyingToken_contains_nocase?: InputMaybe; + underlyingToken_ends_with?: InputMaybe; + underlyingToken_ends_with_nocase?: InputMaybe; + underlyingToken_gt?: InputMaybe; + underlyingToken_gte?: InputMaybe; + underlyingToken_in?: InputMaybe>; + underlyingToken_lt?: InputMaybe; + underlyingToken_lte?: InputMaybe; + underlyingToken_not?: InputMaybe; + underlyingToken_not_contains?: InputMaybe; + underlyingToken_not_contains_nocase?: InputMaybe; + underlyingToken_not_ends_with?: InputMaybe; + underlyingToken_not_ends_with_nocase?: InputMaybe; + underlyingToken_not_in?: InputMaybe>; + underlyingToken_not_starts_with?: InputMaybe; + underlyingToken_not_starts_with_nocase?: InputMaybe; + underlyingToken_starts_with?: InputMaybe; + underlyingToken_starts_with_nocase?: InputMaybe; + unripeToken?: InputMaybe; + unripeToken_?: InputMaybe; + unripeToken_contains?: InputMaybe; + unripeToken_contains_nocase?: InputMaybe; + unripeToken_ends_with?: InputMaybe; + unripeToken_ends_with_nocase?: InputMaybe; + unripeToken_gt?: InputMaybe; + unripeToken_gte?: InputMaybe; + unripeToken_in?: InputMaybe>; + unripeToken_lt?: InputMaybe; + unripeToken_lte?: InputMaybe; + unripeToken_not?: InputMaybe; + unripeToken_not_contains?: InputMaybe; + unripeToken_not_contains_nocase?: InputMaybe; + unripeToken_not_ends_with?: InputMaybe; + unripeToken_not_ends_with_nocase?: InputMaybe; + unripeToken_not_in?: InputMaybe>; + unripeToken_not_starts_with?: InputMaybe; + unripeToken_not_starts_with_nocase?: InputMaybe; + unripeToken_starts_with?: InputMaybe; + unripeToken_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum UnripeTokenDailySnapshot_OrderBy { + AmountUnderlyingOne = 'amountUnderlyingOne', + BdvUnderlyingOne = 'bdvUnderlyingOne', + ChopRate = 'chopRate', + ChoppableAmountOne = 'choppableAmountOne', + ChoppableBdvOne = 'choppableBdvOne', + CreatedAt = 'createdAt', + DeltaAmountUnderlyingOne = 'deltaAmountUnderlyingOne', + DeltaBdvUnderlyingOne = 'deltaBdvUnderlyingOne', + DeltaChopRate = 'deltaChopRate', + DeltaChoppableAmountOne = 'deltaChoppableAmountOne', + DeltaChoppableBdvOne = 'deltaChoppableBdvOne', + DeltaRecapPercent = 'deltaRecapPercent', + DeltaTotalChoppedAmount = 'deltaTotalChoppedAmount', + DeltaTotalChoppedBdv = 'deltaTotalChoppedBdv', + DeltaTotalChoppedBdvReceived = 'deltaTotalChoppedBdvReceived', + DeltaTotalUnderlying = 'deltaTotalUnderlying', + DeltaUnderlyingToken = 'deltaUnderlyingToken', + Id = 'id', + RecapPercent = 'recapPercent', + Season = 'season', + TotalChoppedAmount = 'totalChoppedAmount', + TotalChoppedBdv = 'totalChoppedBdv', + TotalChoppedBdvReceived = 'totalChoppedBdvReceived', + TotalUnderlying = 'totalUnderlying', + UnderlyingToken = 'underlyingToken', + UnderlyingTokenDecimals = 'underlyingToken__decimals', + UnderlyingTokenGaugePoints = 'underlyingToken__gaugePoints', + UnderlyingTokenId = 'underlyingToken__id', + UnderlyingTokenIsGaugeEnabled = 'underlyingToken__isGaugeEnabled', + UnderlyingTokenLastDailySnapshotDay = 'underlyingToken__lastDailySnapshotDay', + UnderlyingTokenLastHourlySnapshotSeason = 'underlyingToken__lastHourlySnapshotSeason', + UnderlyingTokenMilestoneSeason = 'underlyingToken__milestoneSeason', + UnderlyingTokenOptimalPercentDepositedBdv = 'underlyingToken__optimalPercentDepositedBdv', + UnderlyingTokenSelector = 'underlyingToken__selector', + UnderlyingTokenStalkEarnedPerSeason = 'underlyingToken__stalkEarnedPerSeason', + UnderlyingTokenStalkIssuedPerBdv = 'underlyingToken__stalkIssuedPerBdv', + UnderlyingTokenStemTip = 'underlyingToken__stemTip', + UnderlyingTokenUpdatedAt = 'underlyingToken__updatedAt', + UnripeToken = 'unripeToken', + UnripeTokenAmountUnderlyingOne = 'unripeToken__amountUnderlyingOne', + UnripeTokenBdvUnderlyingOne = 'unripeToken__bdvUnderlyingOne', + UnripeTokenChopRate = 'unripeToken__chopRate', + UnripeTokenChoppableAmountOne = 'unripeToken__choppableAmountOne', + UnripeTokenChoppableBdvOne = 'unripeToken__choppableBdvOne', + UnripeTokenId = 'unripeToken__id', + UnripeTokenLastDailySnapshotDay = 'unripeToken__lastDailySnapshotDay', + UnripeTokenLastHourlySnapshotSeason = 'unripeToken__lastHourlySnapshotSeason', + UnripeTokenRecapPercent = 'unripeToken__recapPercent', + UnripeTokenTotalChoppedAmount = 'unripeToken__totalChoppedAmount', + UnripeTokenTotalChoppedBdv = 'unripeToken__totalChoppedBdv', + UnripeTokenTotalChoppedBdvReceived = 'unripeToken__totalChoppedBdvReceived', + UnripeTokenTotalUnderlying = 'unripeToken__totalUnderlying', + UpdatedAt = 'updatedAt' +} + +export type UnripeTokenHourlySnapshot = { + __typename?: 'UnripeTokenHourlySnapshot'; + /** Point in time amount of `underlyingToken` corresponding to one of this unripe token (getUnderlyingPerUnripeToken) */ + amountUnderlyingOne: Scalars['BigInt']['output']; + /** Point in time bdv of `amountUnderlyingOne` of `underlyingToken`. Assumed to not always be the same as bdv(id) */ + bdvUnderlyingOne: Scalars['BigInt']['output']; + /** Point in time chop rate, in percent (getPercentPenalty) */ + chopRate: Scalars['BigDecimal']['output']; + /** Point in time amount of `underlyingToken` which would be received if one of this unripe token were to be chopped (getPenalty) */ + choppableAmountOne: Scalars['BigInt']['output']; + /** Point in time bdv that would be received if one of this unripe token were to be chopped */ + choppableBdvOne: Scalars['BigInt']['output']; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** Note that the contents of this field are nonsense when deltaUnderlyingToken = true */ + deltaAmountUnderlyingOne: Scalars['BigInt']['output']; + deltaBdvUnderlyingOne: Scalars['BigInt']['output']; + deltaChopRate: Scalars['BigDecimal']['output']; + /** Note that the contents of this field are nonsense when deltaUnderlyingToken = true */ + deltaChoppableAmountOne: Scalars['BigInt']['output']; + deltaChoppableBdvOne: Scalars['BigInt']['output']; + deltaRecapPercent: Scalars['BigDecimal']['output']; + deltaTotalChoppedAmount: Scalars['BigInt']['output']; + deltaTotalChoppedBdv: Scalars['BigInt']['output']; + deltaTotalChoppedBdvReceived: Scalars['BigInt']['output']; + /** Note that the contents of this field are nonsense when deltaUnderlyingToken = true */ + deltaTotalUnderlying: Scalars['BigInt']['output']; + deltaUnderlyingToken: Scalars['Boolean']['output']; + /** UnripeToken ID - Season */ + id: Scalars['ID']['output']; + /** Point in time amount recapitalized, in percent (getRecapFundedPercent) */ + recapPercent: Scalars['BigDecimal']['output']; + /** Season for the snapshot */ + season: Scalars['Int']['output']; + /** Point in time total amount of this unripe token which has been chopped */ + totalChoppedAmount: Scalars['BigInt']['output']; + /** Point in time total bdv of this unripe token which has been chopped */ + totalChoppedBdv: Scalars['BigInt']['output']; + /** Point in time total bdv of all `underlyingToken` that has been received from chopping */ + totalChoppedBdvReceived: Scalars['BigInt']['output']; + /** Point in time total amount of `underlyingToken` for this unripe token (getTotalUnderlying) */ + totalUnderlying: Scalars['BigInt']['output']; + /** Point in time ripe token underlying this unripe asset */ + underlyingToken: WhitelistTokenSetting; + /** Unripe token associated with this snapshot */ + unripeToken: UnripeToken; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type UnripeTokenHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amountUnderlyingOne?: InputMaybe; + amountUnderlyingOne_gt?: InputMaybe; + amountUnderlyingOne_gte?: InputMaybe; + amountUnderlyingOne_in?: InputMaybe>; + amountUnderlyingOne_lt?: InputMaybe; + amountUnderlyingOne_lte?: InputMaybe; + amountUnderlyingOne_not?: InputMaybe; + amountUnderlyingOne_not_in?: InputMaybe>; + and?: InputMaybe>>; + bdvUnderlyingOne?: InputMaybe; + bdvUnderlyingOne_gt?: InputMaybe; + bdvUnderlyingOne_gte?: InputMaybe; + bdvUnderlyingOne_in?: InputMaybe>; + bdvUnderlyingOne_lt?: InputMaybe; + bdvUnderlyingOne_lte?: InputMaybe; + bdvUnderlyingOne_not?: InputMaybe; + bdvUnderlyingOne_not_in?: InputMaybe>; + chopRate?: InputMaybe; + chopRate_gt?: InputMaybe; + chopRate_gte?: InputMaybe; + chopRate_in?: InputMaybe>; + chopRate_lt?: InputMaybe; + chopRate_lte?: InputMaybe; + chopRate_not?: InputMaybe; + chopRate_not_in?: InputMaybe>; + choppableAmountOne?: InputMaybe; + choppableAmountOne_gt?: InputMaybe; + choppableAmountOne_gte?: InputMaybe; + choppableAmountOne_in?: InputMaybe>; + choppableAmountOne_lt?: InputMaybe; + choppableAmountOne_lte?: InputMaybe; + choppableAmountOne_not?: InputMaybe; + choppableAmountOne_not_in?: InputMaybe>; + choppableBdvOne?: InputMaybe; + choppableBdvOne_gt?: InputMaybe; + choppableBdvOne_gte?: InputMaybe; + choppableBdvOne_in?: InputMaybe>; + choppableBdvOne_lt?: InputMaybe; + choppableBdvOne_lte?: InputMaybe; + choppableBdvOne_not?: InputMaybe; + choppableBdvOne_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaAmountUnderlyingOne?: InputMaybe; + deltaAmountUnderlyingOne_gt?: InputMaybe; + deltaAmountUnderlyingOne_gte?: InputMaybe; + deltaAmountUnderlyingOne_in?: InputMaybe>; + deltaAmountUnderlyingOne_lt?: InputMaybe; + deltaAmountUnderlyingOne_lte?: InputMaybe; + deltaAmountUnderlyingOne_not?: InputMaybe; + deltaAmountUnderlyingOne_not_in?: InputMaybe>; + deltaBdvUnderlyingOne?: InputMaybe; + deltaBdvUnderlyingOne_gt?: InputMaybe; + deltaBdvUnderlyingOne_gte?: InputMaybe; + deltaBdvUnderlyingOne_in?: InputMaybe>; + deltaBdvUnderlyingOne_lt?: InputMaybe; + deltaBdvUnderlyingOne_lte?: InputMaybe; + deltaBdvUnderlyingOne_not?: InputMaybe; + deltaBdvUnderlyingOne_not_in?: InputMaybe>; + deltaChopRate?: InputMaybe; + deltaChopRate_gt?: InputMaybe; + deltaChopRate_gte?: InputMaybe; + deltaChopRate_in?: InputMaybe>; + deltaChopRate_lt?: InputMaybe; + deltaChopRate_lte?: InputMaybe; + deltaChopRate_not?: InputMaybe; + deltaChopRate_not_in?: InputMaybe>; + deltaChoppableAmountOne?: InputMaybe; + deltaChoppableAmountOne_gt?: InputMaybe; + deltaChoppableAmountOne_gte?: InputMaybe; + deltaChoppableAmountOne_in?: InputMaybe>; + deltaChoppableAmountOne_lt?: InputMaybe; + deltaChoppableAmountOne_lte?: InputMaybe; + deltaChoppableAmountOne_not?: InputMaybe; + deltaChoppableAmountOne_not_in?: InputMaybe>; + deltaChoppableBdvOne?: InputMaybe; + deltaChoppableBdvOne_gt?: InputMaybe; + deltaChoppableBdvOne_gte?: InputMaybe; + deltaChoppableBdvOne_in?: InputMaybe>; + deltaChoppableBdvOne_lt?: InputMaybe; + deltaChoppableBdvOne_lte?: InputMaybe; + deltaChoppableBdvOne_not?: InputMaybe; + deltaChoppableBdvOne_not_in?: InputMaybe>; + deltaRecapPercent?: InputMaybe; + deltaRecapPercent_gt?: InputMaybe; + deltaRecapPercent_gte?: InputMaybe; + deltaRecapPercent_in?: InputMaybe>; + deltaRecapPercent_lt?: InputMaybe; + deltaRecapPercent_lte?: InputMaybe; + deltaRecapPercent_not?: InputMaybe; + deltaRecapPercent_not_in?: InputMaybe>; + deltaTotalChoppedAmount?: InputMaybe; + deltaTotalChoppedAmount_gt?: InputMaybe; + deltaTotalChoppedAmount_gte?: InputMaybe; + deltaTotalChoppedAmount_in?: InputMaybe>; + deltaTotalChoppedAmount_lt?: InputMaybe; + deltaTotalChoppedAmount_lte?: InputMaybe; + deltaTotalChoppedAmount_not?: InputMaybe; + deltaTotalChoppedAmount_not_in?: InputMaybe>; + deltaTotalChoppedBdv?: InputMaybe; + deltaTotalChoppedBdvReceived?: InputMaybe; + deltaTotalChoppedBdvReceived_gt?: InputMaybe; + deltaTotalChoppedBdvReceived_gte?: InputMaybe; + deltaTotalChoppedBdvReceived_in?: InputMaybe>; + deltaTotalChoppedBdvReceived_lt?: InputMaybe; + deltaTotalChoppedBdvReceived_lte?: InputMaybe; + deltaTotalChoppedBdvReceived_not?: InputMaybe; + deltaTotalChoppedBdvReceived_not_in?: InputMaybe>; + deltaTotalChoppedBdv_gt?: InputMaybe; + deltaTotalChoppedBdv_gte?: InputMaybe; + deltaTotalChoppedBdv_in?: InputMaybe>; + deltaTotalChoppedBdv_lt?: InputMaybe; + deltaTotalChoppedBdv_lte?: InputMaybe; + deltaTotalChoppedBdv_not?: InputMaybe; + deltaTotalChoppedBdv_not_in?: InputMaybe>; + deltaTotalUnderlying?: InputMaybe; + deltaTotalUnderlying_gt?: InputMaybe; + deltaTotalUnderlying_gte?: InputMaybe; + deltaTotalUnderlying_in?: InputMaybe>; + deltaTotalUnderlying_lt?: InputMaybe; + deltaTotalUnderlying_lte?: InputMaybe; + deltaTotalUnderlying_not?: InputMaybe; + deltaTotalUnderlying_not_in?: InputMaybe>; + deltaUnderlyingToken?: InputMaybe; + deltaUnderlyingToken_in?: InputMaybe>; + deltaUnderlyingToken_not?: InputMaybe; + deltaUnderlyingToken_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + recapPercent?: InputMaybe; + recapPercent_gt?: InputMaybe; + recapPercent_gte?: InputMaybe; + recapPercent_in?: InputMaybe>; + recapPercent_lt?: InputMaybe; + recapPercent_lte?: InputMaybe; + recapPercent_not?: InputMaybe; + recapPercent_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + totalChoppedAmount?: InputMaybe; + totalChoppedAmount_gt?: InputMaybe; + totalChoppedAmount_gte?: InputMaybe; + totalChoppedAmount_in?: InputMaybe>; + totalChoppedAmount_lt?: InputMaybe; + totalChoppedAmount_lte?: InputMaybe; + totalChoppedAmount_not?: InputMaybe; + totalChoppedAmount_not_in?: InputMaybe>; + totalChoppedBdv?: InputMaybe; + totalChoppedBdvReceived?: InputMaybe; + totalChoppedBdvReceived_gt?: InputMaybe; + totalChoppedBdvReceived_gte?: InputMaybe; + totalChoppedBdvReceived_in?: InputMaybe>; + totalChoppedBdvReceived_lt?: InputMaybe; + totalChoppedBdvReceived_lte?: InputMaybe; + totalChoppedBdvReceived_not?: InputMaybe; + totalChoppedBdvReceived_not_in?: InputMaybe>; + totalChoppedBdv_gt?: InputMaybe; + totalChoppedBdv_gte?: InputMaybe; + totalChoppedBdv_in?: InputMaybe>; + totalChoppedBdv_lt?: InputMaybe; + totalChoppedBdv_lte?: InputMaybe; + totalChoppedBdv_not?: InputMaybe; + totalChoppedBdv_not_in?: InputMaybe>; + totalUnderlying?: InputMaybe; + totalUnderlying_gt?: InputMaybe; + totalUnderlying_gte?: InputMaybe; + totalUnderlying_in?: InputMaybe>; + totalUnderlying_lt?: InputMaybe; + totalUnderlying_lte?: InputMaybe; + totalUnderlying_not?: InputMaybe; + totalUnderlying_not_in?: InputMaybe>; + underlyingToken?: InputMaybe; + underlyingToken_?: InputMaybe; + underlyingToken_contains?: InputMaybe; + underlyingToken_contains_nocase?: InputMaybe; + underlyingToken_ends_with?: InputMaybe; + underlyingToken_ends_with_nocase?: InputMaybe; + underlyingToken_gt?: InputMaybe; + underlyingToken_gte?: InputMaybe; + underlyingToken_in?: InputMaybe>; + underlyingToken_lt?: InputMaybe; + underlyingToken_lte?: InputMaybe; + underlyingToken_not?: InputMaybe; + underlyingToken_not_contains?: InputMaybe; + underlyingToken_not_contains_nocase?: InputMaybe; + underlyingToken_not_ends_with?: InputMaybe; + underlyingToken_not_ends_with_nocase?: InputMaybe; + underlyingToken_not_in?: InputMaybe>; + underlyingToken_not_starts_with?: InputMaybe; + underlyingToken_not_starts_with_nocase?: InputMaybe; + underlyingToken_starts_with?: InputMaybe; + underlyingToken_starts_with_nocase?: InputMaybe; + unripeToken?: InputMaybe; + unripeToken_?: InputMaybe; + unripeToken_contains?: InputMaybe; + unripeToken_contains_nocase?: InputMaybe; + unripeToken_ends_with?: InputMaybe; + unripeToken_ends_with_nocase?: InputMaybe; + unripeToken_gt?: InputMaybe; + unripeToken_gte?: InputMaybe; + unripeToken_in?: InputMaybe>; + unripeToken_lt?: InputMaybe; + unripeToken_lte?: InputMaybe; + unripeToken_not?: InputMaybe; + unripeToken_not_contains?: InputMaybe; + unripeToken_not_contains_nocase?: InputMaybe; + unripeToken_not_ends_with?: InputMaybe; + unripeToken_not_ends_with_nocase?: InputMaybe; + unripeToken_not_in?: InputMaybe>; + unripeToken_not_starts_with?: InputMaybe; + unripeToken_not_starts_with_nocase?: InputMaybe; + unripeToken_starts_with?: InputMaybe; + unripeToken_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum UnripeTokenHourlySnapshot_OrderBy { + AmountUnderlyingOne = 'amountUnderlyingOne', + BdvUnderlyingOne = 'bdvUnderlyingOne', + ChopRate = 'chopRate', + ChoppableAmountOne = 'choppableAmountOne', + ChoppableBdvOne = 'choppableBdvOne', + CreatedAt = 'createdAt', + DeltaAmountUnderlyingOne = 'deltaAmountUnderlyingOne', + DeltaBdvUnderlyingOne = 'deltaBdvUnderlyingOne', + DeltaChopRate = 'deltaChopRate', + DeltaChoppableAmountOne = 'deltaChoppableAmountOne', + DeltaChoppableBdvOne = 'deltaChoppableBdvOne', + DeltaRecapPercent = 'deltaRecapPercent', + DeltaTotalChoppedAmount = 'deltaTotalChoppedAmount', + DeltaTotalChoppedBdv = 'deltaTotalChoppedBdv', + DeltaTotalChoppedBdvReceived = 'deltaTotalChoppedBdvReceived', + DeltaTotalUnderlying = 'deltaTotalUnderlying', + DeltaUnderlyingToken = 'deltaUnderlyingToken', + Id = 'id', + RecapPercent = 'recapPercent', + Season = 'season', + TotalChoppedAmount = 'totalChoppedAmount', + TotalChoppedBdv = 'totalChoppedBdv', + TotalChoppedBdvReceived = 'totalChoppedBdvReceived', + TotalUnderlying = 'totalUnderlying', + UnderlyingToken = 'underlyingToken', + UnderlyingTokenDecimals = 'underlyingToken__decimals', + UnderlyingTokenGaugePoints = 'underlyingToken__gaugePoints', + UnderlyingTokenId = 'underlyingToken__id', + UnderlyingTokenIsGaugeEnabled = 'underlyingToken__isGaugeEnabled', + UnderlyingTokenLastDailySnapshotDay = 'underlyingToken__lastDailySnapshotDay', + UnderlyingTokenLastHourlySnapshotSeason = 'underlyingToken__lastHourlySnapshotSeason', + UnderlyingTokenMilestoneSeason = 'underlyingToken__milestoneSeason', + UnderlyingTokenOptimalPercentDepositedBdv = 'underlyingToken__optimalPercentDepositedBdv', + UnderlyingTokenSelector = 'underlyingToken__selector', + UnderlyingTokenStalkEarnedPerSeason = 'underlyingToken__stalkEarnedPerSeason', + UnderlyingTokenStalkIssuedPerBdv = 'underlyingToken__stalkIssuedPerBdv', + UnderlyingTokenStemTip = 'underlyingToken__stemTip', + UnderlyingTokenUpdatedAt = 'underlyingToken__updatedAt', + UnripeToken = 'unripeToken', + UnripeTokenAmountUnderlyingOne = 'unripeToken__amountUnderlyingOne', + UnripeTokenBdvUnderlyingOne = 'unripeToken__bdvUnderlyingOne', + UnripeTokenChopRate = 'unripeToken__chopRate', + UnripeTokenChoppableAmountOne = 'unripeToken__choppableAmountOne', + UnripeTokenChoppableBdvOne = 'unripeToken__choppableBdvOne', + UnripeTokenId = 'unripeToken__id', + UnripeTokenLastDailySnapshotDay = 'unripeToken__lastDailySnapshotDay', + UnripeTokenLastHourlySnapshotSeason = 'unripeToken__lastHourlySnapshotSeason', + UnripeTokenRecapPercent = 'unripeToken__recapPercent', + UnripeTokenTotalChoppedAmount = 'unripeToken__totalChoppedAmount', + UnripeTokenTotalChoppedBdv = 'unripeToken__totalChoppedBdv', + UnripeTokenTotalChoppedBdvReceived = 'unripeToken__totalChoppedBdvReceived', + UnripeTokenTotalUnderlying = 'unripeToken__totalUnderlying', + UpdatedAt = 'updatedAt' +} + +export type UnripeToken_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amountUnderlyingOne?: InputMaybe; + amountUnderlyingOne_gt?: InputMaybe; + amountUnderlyingOne_gte?: InputMaybe; + amountUnderlyingOne_in?: InputMaybe>; + amountUnderlyingOne_lt?: InputMaybe; + amountUnderlyingOne_lte?: InputMaybe; + amountUnderlyingOne_not?: InputMaybe; + amountUnderlyingOne_not_in?: InputMaybe>; + and?: InputMaybe>>; + bdvUnderlyingOne?: InputMaybe; + bdvUnderlyingOne_gt?: InputMaybe; + bdvUnderlyingOne_gte?: InputMaybe; + bdvUnderlyingOne_in?: InputMaybe>; + bdvUnderlyingOne_lt?: InputMaybe; + bdvUnderlyingOne_lte?: InputMaybe; + bdvUnderlyingOne_not?: InputMaybe; + bdvUnderlyingOne_not_in?: InputMaybe>; + chopRate?: InputMaybe; + chopRate_gt?: InputMaybe; + chopRate_gte?: InputMaybe; + chopRate_in?: InputMaybe>; + chopRate_lt?: InputMaybe; + chopRate_lte?: InputMaybe; + chopRate_not?: InputMaybe; + chopRate_not_in?: InputMaybe>; + choppableAmountOne?: InputMaybe; + choppableAmountOne_gt?: InputMaybe; + choppableAmountOne_gte?: InputMaybe; + choppableAmountOne_in?: InputMaybe>; + choppableAmountOne_lt?: InputMaybe; + choppableAmountOne_lte?: InputMaybe; + choppableAmountOne_not?: InputMaybe; + choppableAmountOne_not_in?: InputMaybe>; + choppableBdvOne?: InputMaybe; + choppableBdvOne_gt?: InputMaybe; + choppableBdvOne_gte?: InputMaybe; + choppableBdvOne_in?: InputMaybe>; + choppableBdvOne_lt?: InputMaybe; + choppableBdvOne_lte?: InputMaybe; + choppableBdvOne_not?: InputMaybe; + choppableBdvOne_not_in?: InputMaybe>; + dailySnapshots_?: InputMaybe; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; + recapPercent?: InputMaybe; + recapPercent_gt?: InputMaybe; + recapPercent_gte?: InputMaybe; + recapPercent_in?: InputMaybe>; + recapPercent_lt?: InputMaybe; + recapPercent_lte?: InputMaybe; + recapPercent_not?: InputMaybe; + recapPercent_not_in?: InputMaybe>; + totalChoppedAmount?: InputMaybe; + totalChoppedAmount_gt?: InputMaybe; + totalChoppedAmount_gte?: InputMaybe; + totalChoppedAmount_in?: InputMaybe>; + totalChoppedAmount_lt?: InputMaybe; + totalChoppedAmount_lte?: InputMaybe; + totalChoppedAmount_not?: InputMaybe; + totalChoppedAmount_not_in?: InputMaybe>; + totalChoppedBdv?: InputMaybe; + totalChoppedBdvReceived?: InputMaybe; + totalChoppedBdvReceived_gt?: InputMaybe; + totalChoppedBdvReceived_gte?: InputMaybe; + totalChoppedBdvReceived_in?: InputMaybe>; + totalChoppedBdvReceived_lt?: InputMaybe; + totalChoppedBdvReceived_lte?: InputMaybe; + totalChoppedBdvReceived_not?: InputMaybe; + totalChoppedBdvReceived_not_in?: InputMaybe>; + totalChoppedBdv_gt?: InputMaybe; + totalChoppedBdv_gte?: InputMaybe; + totalChoppedBdv_in?: InputMaybe>; + totalChoppedBdv_lt?: InputMaybe; + totalChoppedBdv_lte?: InputMaybe; + totalChoppedBdv_not?: InputMaybe; + totalChoppedBdv_not_in?: InputMaybe>; + totalUnderlying?: InputMaybe; + totalUnderlying_gt?: InputMaybe; + totalUnderlying_gte?: InputMaybe; + totalUnderlying_in?: InputMaybe>; + totalUnderlying_lt?: InputMaybe; + totalUnderlying_lte?: InputMaybe; + totalUnderlying_not?: InputMaybe; + totalUnderlying_not_in?: InputMaybe>; + underlyingToken?: InputMaybe; + underlyingToken_?: InputMaybe; + underlyingToken_contains?: InputMaybe; + underlyingToken_contains_nocase?: InputMaybe; + underlyingToken_ends_with?: InputMaybe; + underlyingToken_ends_with_nocase?: InputMaybe; + underlyingToken_gt?: InputMaybe; + underlyingToken_gte?: InputMaybe; + underlyingToken_in?: InputMaybe>; + underlyingToken_lt?: InputMaybe; + underlyingToken_lte?: InputMaybe; + underlyingToken_not?: InputMaybe; + underlyingToken_not_contains?: InputMaybe; + underlyingToken_not_contains_nocase?: InputMaybe; + underlyingToken_not_ends_with?: InputMaybe; + underlyingToken_not_ends_with_nocase?: InputMaybe; + underlyingToken_not_in?: InputMaybe>; + underlyingToken_not_starts_with?: InputMaybe; + underlyingToken_not_starts_with_nocase?: InputMaybe; + underlyingToken_starts_with?: InputMaybe; + underlyingToken_starts_with_nocase?: InputMaybe; +}; + +export enum UnripeToken_OrderBy { + AmountUnderlyingOne = 'amountUnderlyingOne', + BdvUnderlyingOne = 'bdvUnderlyingOne', + ChopRate = 'chopRate', + ChoppableAmountOne = 'choppableAmountOne', + ChoppableBdvOne = 'choppableBdvOne', + DailySnapshots = 'dailySnapshots', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + RecapPercent = 'recapPercent', + TotalChoppedAmount = 'totalChoppedAmount', + TotalChoppedBdv = 'totalChoppedBdv', + TotalChoppedBdvReceived = 'totalChoppedBdvReceived', + TotalUnderlying = 'totalUnderlying', + UnderlyingToken = 'underlyingToken', + UnderlyingTokenDecimals = 'underlyingToken__decimals', + UnderlyingTokenGaugePoints = 'underlyingToken__gaugePoints', + UnderlyingTokenId = 'underlyingToken__id', + UnderlyingTokenIsGaugeEnabled = 'underlyingToken__isGaugeEnabled', + UnderlyingTokenLastDailySnapshotDay = 'underlyingToken__lastDailySnapshotDay', + UnderlyingTokenLastHourlySnapshotSeason = 'underlyingToken__lastHourlySnapshotSeason', + UnderlyingTokenMilestoneSeason = 'underlyingToken__milestoneSeason', + UnderlyingTokenOptimalPercentDepositedBdv = 'underlyingToken__optimalPercentDepositedBdv', + UnderlyingTokenSelector = 'underlyingToken__selector', + UnderlyingTokenStalkEarnedPerSeason = 'underlyingToken__stalkEarnedPerSeason', + UnderlyingTokenStalkIssuedPerBdv = 'underlyingToken__stalkIssuedPerBdv', + UnderlyingTokenStemTip = 'underlyingToken__stemTip', + UnderlyingTokenUpdatedAt = 'underlyingToken__updatedAt' +} + +export type Version = { + __typename?: 'Version'; + /** Which blockchain is being indexed, i.e. 'ethereum', 'arbitrum', etc. */ + chain: Scalars['String']['output']; + /** = 'subgraph' */ + id: Scalars['ID']['output']; + /** Address of Beanstalk protocol */ + protocolAddress: Scalars['Bytes']['output']; + /** = 'beanstalk' */ + subgraphName: Scalars['String']['output']; + /** Verison number of the subgraph */ + versionNumber: Scalars['String']['output']; +}; + +export type Version_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + chain?: InputMaybe; + chain_contains?: InputMaybe; + chain_contains_nocase?: InputMaybe; + chain_ends_with?: InputMaybe; + chain_ends_with_nocase?: InputMaybe; + chain_gt?: InputMaybe; + chain_gte?: InputMaybe; + chain_in?: InputMaybe>; + chain_lt?: InputMaybe; + chain_lte?: InputMaybe; + chain_not?: InputMaybe; + chain_not_contains?: InputMaybe; + chain_not_contains_nocase?: InputMaybe; + chain_not_ends_with?: InputMaybe; + chain_not_ends_with_nocase?: InputMaybe; + chain_not_in?: InputMaybe>; + chain_not_starts_with?: InputMaybe; + chain_not_starts_with_nocase?: InputMaybe; + chain_starts_with?: InputMaybe; + chain_starts_with_nocase?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + protocolAddress?: InputMaybe; + protocolAddress_contains?: InputMaybe; + protocolAddress_gt?: InputMaybe; + protocolAddress_gte?: InputMaybe; + protocolAddress_in?: InputMaybe>; + protocolAddress_lt?: InputMaybe; + protocolAddress_lte?: InputMaybe; + protocolAddress_not?: InputMaybe; + protocolAddress_not_contains?: InputMaybe; + protocolAddress_not_in?: InputMaybe>; + subgraphName?: InputMaybe; + subgraphName_contains?: InputMaybe; + subgraphName_contains_nocase?: InputMaybe; + subgraphName_ends_with?: InputMaybe; + subgraphName_ends_with_nocase?: InputMaybe; + subgraphName_gt?: InputMaybe; + subgraphName_gte?: InputMaybe; + subgraphName_in?: InputMaybe>; + subgraphName_lt?: InputMaybe; + subgraphName_lte?: InputMaybe; + subgraphName_not?: InputMaybe; + subgraphName_not_contains?: InputMaybe; + subgraphName_not_contains_nocase?: InputMaybe; + subgraphName_not_ends_with?: InputMaybe; + subgraphName_not_ends_with_nocase?: InputMaybe; + subgraphName_not_in?: InputMaybe>; + subgraphName_not_starts_with?: InputMaybe; + subgraphName_not_starts_with_nocase?: InputMaybe; + subgraphName_starts_with?: InputMaybe; + subgraphName_starts_with_nocase?: InputMaybe; + versionNumber?: InputMaybe; + versionNumber_contains?: InputMaybe; + versionNumber_contains_nocase?: InputMaybe; + versionNumber_ends_with?: InputMaybe; + versionNumber_ends_with_nocase?: InputMaybe; + versionNumber_gt?: InputMaybe; + versionNumber_gte?: InputMaybe; + versionNumber_in?: InputMaybe>; + versionNumber_lt?: InputMaybe; + versionNumber_lte?: InputMaybe; + versionNumber_not?: InputMaybe; + versionNumber_not_contains?: InputMaybe; + versionNumber_not_contains_nocase?: InputMaybe; + versionNumber_not_ends_with?: InputMaybe; + versionNumber_not_ends_with_nocase?: InputMaybe; + versionNumber_not_in?: InputMaybe>; + versionNumber_not_starts_with?: InputMaybe; + versionNumber_not_starts_with_nocase?: InputMaybe; + versionNumber_starts_with?: InputMaybe; + versionNumber_starts_with_nocase?: InputMaybe; +}; + +export enum Version_OrderBy { + Chain = 'chain', + Id = 'id', + ProtocolAddress = 'protocolAddress', + SubgraphName = 'subgraphName', + VersionNumber = 'versionNumber' +} + +export type WellPlenty = { + __typename?: 'WellPlenty'; + /** The amount of claimed plenty for this token */ + claimedAmount: Scalars['BigInt']['output']; + /** {Address for the farmer or Beanstalk contract}-{Non-Pinto token} */ + id: Scalars['ID']['output']; + /** Beanstalk or farmer silo (used in the ID) */ + silo: Silo; + /** Payout token (used in the ID) */ + token: Scalars['Bytes']['output']; + /** The amount of unclaimed plenty for this token. Always = 0 for an individual Farmer's Silo. */ + unclaimedAmount: Scalars['BigInt']['output']; +}; + +export type WellPlenty_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + claimedAmount?: InputMaybe; + claimedAmount_gt?: InputMaybe; + claimedAmount_gte?: InputMaybe; + claimedAmount_in?: InputMaybe>; + claimedAmount_lt?: InputMaybe; + claimedAmount_lte?: InputMaybe; + claimedAmount_not?: InputMaybe; + claimedAmount_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + silo?: InputMaybe; + silo_?: InputMaybe; + silo_contains?: InputMaybe; + silo_contains_nocase?: InputMaybe; + silo_ends_with?: InputMaybe; + silo_ends_with_nocase?: InputMaybe; + silo_gt?: InputMaybe; + silo_gte?: InputMaybe; + silo_in?: InputMaybe>; + silo_lt?: InputMaybe; + silo_lte?: InputMaybe; + silo_not?: InputMaybe; + silo_not_contains?: InputMaybe; + silo_not_contains_nocase?: InputMaybe; + silo_not_ends_with?: InputMaybe; + silo_not_ends_with_nocase?: InputMaybe; + silo_not_in?: InputMaybe>; + silo_not_starts_with?: InputMaybe; + silo_not_starts_with_nocase?: InputMaybe; + silo_starts_with?: InputMaybe; + silo_starts_with_nocase?: InputMaybe; + token?: InputMaybe; + token_contains?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_in?: InputMaybe>; + unclaimedAmount?: InputMaybe; + unclaimedAmount_gt?: InputMaybe; + unclaimedAmount_gte?: InputMaybe; + unclaimedAmount_in?: InputMaybe>; + unclaimedAmount_lt?: InputMaybe; + unclaimedAmount_lte?: InputMaybe; + unclaimedAmount_not?: InputMaybe; + unclaimedAmount_not_in?: InputMaybe>; +}; + +export enum WellPlenty_OrderBy { + ClaimedAmount = 'claimedAmount', + Id = 'id', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Token = 'token', + UnclaimedAmount = 'unclaimedAmount' +} + +export type WhitelistTokenDailySnapshot = { + __typename?: 'WhitelistTokenDailySnapshot'; + /** Point in time daily bdv */ + bdv?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaBdv?: Maybe; + deltaGaugePoints?: Maybe; + deltaIsGaugeEnabled: Scalars['Boolean']['output']; + deltaMilestoneSeason: Scalars['Int']['output']; + deltaOptimalPercentDepositedBdv?: Maybe; + deltaStalkEarnedPerSeason: Scalars['BigInt']['output']; + deltaStalkIssuedPerBdv: Scalars['BigInt']['output']; + deltaStemTip: Scalars['BigInt']['output']; + /** [Seed Gauge] Current Gauge Points */ + gaugePoints?: Maybe; + /** Token address - Day */ + id: Scalars['ID']['output']; + /** Whether the seed gauge is enabled on this whitelisted token */ + isGaugeEnabled: Scalars['Boolean']['output']; + /** The last season in which the stalkEarnedPerSeason for this token was updated. */ + milestoneSeason: Scalars['Int']['output']; + /** [Seed Gauge] The current optimal targeted distribution of BDV for this whitelisted asset */ + optimalPercentDepositedBdv?: Maybe; + /** The season for this snapshot */ + season: Scalars['Int']['output']; + /** Encoded BDV selector */ + selector: Scalars['Bytes']['output']; + /** Represents how much Stalk one BDV of the underlying deposited token grows each season. */ + stalkEarnedPerSeason: Scalars['BigInt']['output']; + /** The stalk per BDV that the silo grants in exchange for depositing this token. */ + stalkIssuedPerBdv: Scalars['BigInt']['output']; + /** The stem tip of the whitelisted token. Used to derive cumulative Stalk growth. */ + stemTip: Scalars['BigInt']['output']; + /** WhitelistTokenSetting associated with this snapshot */ + token: WhitelistTokenSetting; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type WhitelistTokenDailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + bdv?: InputMaybe; + bdv_gt?: InputMaybe; + bdv_gte?: InputMaybe; + bdv_in?: InputMaybe>; + bdv_lt?: InputMaybe; + bdv_lte?: InputMaybe; + bdv_not?: InputMaybe; + bdv_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaBdv?: InputMaybe; + deltaBdv_gt?: InputMaybe; + deltaBdv_gte?: InputMaybe; + deltaBdv_in?: InputMaybe>; + deltaBdv_lt?: InputMaybe; + deltaBdv_lte?: InputMaybe; + deltaBdv_not?: InputMaybe; + deltaBdv_not_in?: InputMaybe>; + deltaGaugePoints?: InputMaybe; + deltaGaugePoints_gt?: InputMaybe; + deltaGaugePoints_gte?: InputMaybe; + deltaGaugePoints_in?: InputMaybe>; + deltaGaugePoints_lt?: InputMaybe; + deltaGaugePoints_lte?: InputMaybe; + deltaGaugePoints_not?: InputMaybe; + deltaGaugePoints_not_in?: InputMaybe>; + deltaIsGaugeEnabled?: InputMaybe; + deltaIsGaugeEnabled_in?: InputMaybe>; + deltaIsGaugeEnabled_not?: InputMaybe; + deltaIsGaugeEnabled_not_in?: InputMaybe>; + deltaMilestoneSeason?: InputMaybe; + deltaMilestoneSeason_gt?: InputMaybe; + deltaMilestoneSeason_gte?: InputMaybe; + deltaMilestoneSeason_in?: InputMaybe>; + deltaMilestoneSeason_lt?: InputMaybe; + deltaMilestoneSeason_lte?: InputMaybe; + deltaMilestoneSeason_not?: InputMaybe; + deltaMilestoneSeason_not_in?: InputMaybe>; + deltaOptimalPercentDepositedBdv?: InputMaybe; + deltaOptimalPercentDepositedBdv_gt?: InputMaybe; + deltaOptimalPercentDepositedBdv_gte?: InputMaybe; + deltaOptimalPercentDepositedBdv_in?: InputMaybe>; + deltaOptimalPercentDepositedBdv_lt?: InputMaybe; + deltaOptimalPercentDepositedBdv_lte?: InputMaybe; + deltaOptimalPercentDepositedBdv_not?: InputMaybe; + deltaOptimalPercentDepositedBdv_not_in?: InputMaybe>; + deltaStalkEarnedPerSeason?: InputMaybe; + deltaStalkEarnedPerSeason_gt?: InputMaybe; + deltaStalkEarnedPerSeason_gte?: InputMaybe; + deltaStalkEarnedPerSeason_in?: InputMaybe>; + deltaStalkEarnedPerSeason_lt?: InputMaybe; + deltaStalkEarnedPerSeason_lte?: InputMaybe; + deltaStalkEarnedPerSeason_not?: InputMaybe; + deltaStalkEarnedPerSeason_not_in?: InputMaybe>; + deltaStalkIssuedPerBdv?: InputMaybe; + deltaStalkIssuedPerBdv_gt?: InputMaybe; + deltaStalkIssuedPerBdv_gte?: InputMaybe; + deltaStalkIssuedPerBdv_in?: InputMaybe>; + deltaStalkIssuedPerBdv_lt?: InputMaybe; + deltaStalkIssuedPerBdv_lte?: InputMaybe; + deltaStalkIssuedPerBdv_not?: InputMaybe; + deltaStalkIssuedPerBdv_not_in?: InputMaybe>; + deltaStemTip?: InputMaybe; + deltaStemTip_gt?: InputMaybe; + deltaStemTip_gte?: InputMaybe; + deltaStemTip_in?: InputMaybe>; + deltaStemTip_lt?: InputMaybe; + deltaStemTip_lte?: InputMaybe; + deltaStemTip_not?: InputMaybe; + deltaStemTip_not_in?: InputMaybe>; + gaugePoints?: InputMaybe; + gaugePoints_gt?: InputMaybe; + gaugePoints_gte?: InputMaybe; + gaugePoints_in?: InputMaybe>; + gaugePoints_lt?: InputMaybe; + gaugePoints_lte?: InputMaybe; + gaugePoints_not?: InputMaybe; + gaugePoints_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + isGaugeEnabled?: InputMaybe; + isGaugeEnabled_in?: InputMaybe>; + isGaugeEnabled_not?: InputMaybe; + isGaugeEnabled_not_in?: InputMaybe>; + milestoneSeason?: InputMaybe; + milestoneSeason_gt?: InputMaybe; + milestoneSeason_gte?: InputMaybe; + milestoneSeason_in?: InputMaybe>; + milestoneSeason_lt?: InputMaybe; + milestoneSeason_lte?: InputMaybe; + milestoneSeason_not?: InputMaybe; + milestoneSeason_not_in?: InputMaybe>; + optimalPercentDepositedBdv?: InputMaybe; + optimalPercentDepositedBdv_gt?: InputMaybe; + optimalPercentDepositedBdv_gte?: InputMaybe; + optimalPercentDepositedBdv_in?: InputMaybe>; + optimalPercentDepositedBdv_lt?: InputMaybe; + optimalPercentDepositedBdv_lte?: InputMaybe; + optimalPercentDepositedBdv_not?: InputMaybe; + optimalPercentDepositedBdv_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + selector?: InputMaybe; + selector_contains?: InputMaybe; + selector_gt?: InputMaybe; + selector_gte?: InputMaybe; + selector_in?: InputMaybe>; + selector_lt?: InputMaybe; + selector_lte?: InputMaybe; + selector_not?: InputMaybe; + selector_not_contains?: InputMaybe; + selector_not_in?: InputMaybe>; + stalkEarnedPerSeason?: InputMaybe; + stalkEarnedPerSeason_gt?: InputMaybe; + stalkEarnedPerSeason_gte?: InputMaybe; + stalkEarnedPerSeason_in?: InputMaybe>; + stalkEarnedPerSeason_lt?: InputMaybe; + stalkEarnedPerSeason_lte?: InputMaybe; + stalkEarnedPerSeason_not?: InputMaybe; + stalkEarnedPerSeason_not_in?: InputMaybe>; + stalkIssuedPerBdv?: InputMaybe; + stalkIssuedPerBdv_gt?: InputMaybe; + stalkIssuedPerBdv_gte?: InputMaybe; + stalkIssuedPerBdv_in?: InputMaybe>; + stalkIssuedPerBdv_lt?: InputMaybe; + stalkIssuedPerBdv_lte?: InputMaybe; + stalkIssuedPerBdv_not?: InputMaybe; + stalkIssuedPerBdv_not_in?: InputMaybe>; + stemTip?: InputMaybe; + stemTip_gt?: InputMaybe; + stemTip_gte?: InputMaybe; + stemTip_in?: InputMaybe>; + stemTip_lt?: InputMaybe; + stemTip_lte?: InputMaybe; + stemTip_not?: InputMaybe; + stemTip_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum WhitelistTokenDailySnapshot_OrderBy { + Bdv = 'bdv', + CreatedAt = 'createdAt', + DeltaBdv = 'deltaBdv', + DeltaGaugePoints = 'deltaGaugePoints', + DeltaIsGaugeEnabled = 'deltaIsGaugeEnabled', + DeltaMilestoneSeason = 'deltaMilestoneSeason', + DeltaOptimalPercentDepositedBdv = 'deltaOptimalPercentDepositedBdv', + DeltaStalkEarnedPerSeason = 'deltaStalkEarnedPerSeason', + DeltaStalkIssuedPerBdv = 'deltaStalkIssuedPerBdv', + DeltaStemTip = 'deltaStemTip', + GaugePoints = 'gaugePoints', + Id = 'id', + IsGaugeEnabled = 'isGaugeEnabled', + MilestoneSeason = 'milestoneSeason', + OptimalPercentDepositedBdv = 'optimalPercentDepositedBdv', + Season = 'season', + Selector = 'selector', + StalkEarnedPerSeason = 'stalkEarnedPerSeason', + StalkIssuedPerBdv = 'stalkIssuedPerBdv', + StemTip = 'stemTip', + Token = 'token', + TokenDecimals = 'token__decimals', + TokenGaugePoints = 'token__gaugePoints', + TokenId = 'token__id', + TokenIsGaugeEnabled = 'token__isGaugeEnabled', + TokenLastDailySnapshotDay = 'token__lastDailySnapshotDay', + TokenLastHourlySnapshotSeason = 'token__lastHourlySnapshotSeason', + TokenMilestoneSeason = 'token__milestoneSeason', + TokenOptimalPercentDepositedBdv = 'token__optimalPercentDepositedBdv', + TokenSelector = 'token__selector', + TokenStalkEarnedPerSeason = 'token__stalkEarnedPerSeason', + TokenStalkIssuedPerBdv = 'token__stalkIssuedPerBdv', + TokenStemTip = 'token__stemTip', + TokenUpdatedAt = 'token__updatedAt', + UpdatedAt = 'updatedAt' +} + +export type WhitelistTokenHourlySnapshot = { + __typename?: 'WhitelistTokenHourlySnapshot'; + /** Point in time hourly bdv */ + bdv?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + deltaBdv?: Maybe; + deltaGaugePoints?: Maybe; + deltaIsGaugeEnabled: Scalars['Boolean']['output']; + deltaMilestoneSeason: Scalars['Int']['output']; + deltaOptimalPercentDepositedBdv?: Maybe; + deltaStalkEarnedPerSeason: Scalars['BigInt']['output']; + deltaStalkIssuedPerBdv: Scalars['BigInt']['output']; + deltaStemTip: Scalars['BigInt']['output']; + /** [Seed Gauge] Current Gauge Points */ + gaugePoints?: Maybe; + /** Token address - Season */ + id: Scalars['ID']['output']; + /** Whether the seed gauge is enabled on this whitelisted token */ + isGaugeEnabled: Scalars['Boolean']['output']; + /** The last season in which the stalkEarnedPerSeason for this token was updated. */ + milestoneSeason: Scalars['Int']['output']; + /** [Seed Gauge] The current optimal targeted distribution of BDV for this whitelisted asset */ + optimalPercentDepositedBdv?: Maybe; + /** The season for this snapshot */ + season: Scalars['Int']['output']; + /** Encoded BDV selector */ + selector: Scalars['Bytes']['output']; + /** Represents how much Stalk one BDV of the underlying deposited token grows each season. */ + stalkEarnedPerSeason: Scalars['BigInt']['output']; + /** The stalk per BDV that the silo grants in exchange for depositing this token. */ + stalkIssuedPerBdv: Scalars['BigInt']['output']; + /** The stem tip of the whitelisted token. Used to derive cumulative Stalk growth. */ + stemTip: Scalars['BigInt']['output']; + /** WhitelistTokenSetting associated with this snapshot */ + token: WhitelistTokenSetting; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type WhitelistTokenHourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + bdv?: InputMaybe; + bdv_gt?: InputMaybe; + bdv_gte?: InputMaybe; + bdv_in?: InputMaybe>; + bdv_lt?: InputMaybe; + bdv_lte?: InputMaybe; + bdv_not?: InputMaybe; + bdv_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaBdv?: InputMaybe; + deltaBdv_gt?: InputMaybe; + deltaBdv_gte?: InputMaybe; + deltaBdv_in?: InputMaybe>; + deltaBdv_lt?: InputMaybe; + deltaBdv_lte?: InputMaybe; + deltaBdv_not?: InputMaybe; + deltaBdv_not_in?: InputMaybe>; + deltaGaugePoints?: InputMaybe; + deltaGaugePoints_gt?: InputMaybe; + deltaGaugePoints_gte?: InputMaybe; + deltaGaugePoints_in?: InputMaybe>; + deltaGaugePoints_lt?: InputMaybe; + deltaGaugePoints_lte?: InputMaybe; + deltaGaugePoints_not?: InputMaybe; + deltaGaugePoints_not_in?: InputMaybe>; + deltaIsGaugeEnabled?: InputMaybe; + deltaIsGaugeEnabled_in?: InputMaybe>; + deltaIsGaugeEnabled_not?: InputMaybe; + deltaIsGaugeEnabled_not_in?: InputMaybe>; + deltaMilestoneSeason?: InputMaybe; + deltaMilestoneSeason_gt?: InputMaybe; + deltaMilestoneSeason_gte?: InputMaybe; + deltaMilestoneSeason_in?: InputMaybe>; + deltaMilestoneSeason_lt?: InputMaybe; + deltaMilestoneSeason_lte?: InputMaybe; + deltaMilestoneSeason_not?: InputMaybe; + deltaMilestoneSeason_not_in?: InputMaybe>; + deltaOptimalPercentDepositedBdv?: InputMaybe; + deltaOptimalPercentDepositedBdv_gt?: InputMaybe; + deltaOptimalPercentDepositedBdv_gte?: InputMaybe; + deltaOptimalPercentDepositedBdv_in?: InputMaybe>; + deltaOptimalPercentDepositedBdv_lt?: InputMaybe; + deltaOptimalPercentDepositedBdv_lte?: InputMaybe; + deltaOptimalPercentDepositedBdv_not?: InputMaybe; + deltaOptimalPercentDepositedBdv_not_in?: InputMaybe>; + deltaStalkEarnedPerSeason?: InputMaybe; + deltaStalkEarnedPerSeason_gt?: InputMaybe; + deltaStalkEarnedPerSeason_gte?: InputMaybe; + deltaStalkEarnedPerSeason_in?: InputMaybe>; + deltaStalkEarnedPerSeason_lt?: InputMaybe; + deltaStalkEarnedPerSeason_lte?: InputMaybe; + deltaStalkEarnedPerSeason_not?: InputMaybe; + deltaStalkEarnedPerSeason_not_in?: InputMaybe>; + deltaStalkIssuedPerBdv?: InputMaybe; + deltaStalkIssuedPerBdv_gt?: InputMaybe; + deltaStalkIssuedPerBdv_gte?: InputMaybe; + deltaStalkIssuedPerBdv_in?: InputMaybe>; + deltaStalkIssuedPerBdv_lt?: InputMaybe; + deltaStalkIssuedPerBdv_lte?: InputMaybe; + deltaStalkIssuedPerBdv_not?: InputMaybe; + deltaStalkIssuedPerBdv_not_in?: InputMaybe>; + deltaStemTip?: InputMaybe; + deltaStemTip_gt?: InputMaybe; + deltaStemTip_gte?: InputMaybe; + deltaStemTip_in?: InputMaybe>; + deltaStemTip_lt?: InputMaybe; + deltaStemTip_lte?: InputMaybe; + deltaStemTip_not?: InputMaybe; + deltaStemTip_not_in?: InputMaybe>; + gaugePoints?: InputMaybe; + gaugePoints_gt?: InputMaybe; + gaugePoints_gte?: InputMaybe; + gaugePoints_in?: InputMaybe>; + gaugePoints_lt?: InputMaybe; + gaugePoints_lte?: InputMaybe; + gaugePoints_not?: InputMaybe; + gaugePoints_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + isGaugeEnabled?: InputMaybe; + isGaugeEnabled_in?: InputMaybe>; + isGaugeEnabled_not?: InputMaybe; + isGaugeEnabled_not_in?: InputMaybe>; + milestoneSeason?: InputMaybe; + milestoneSeason_gt?: InputMaybe; + milestoneSeason_gte?: InputMaybe; + milestoneSeason_in?: InputMaybe>; + milestoneSeason_lt?: InputMaybe; + milestoneSeason_lte?: InputMaybe; + milestoneSeason_not?: InputMaybe; + milestoneSeason_not_in?: InputMaybe>; + optimalPercentDepositedBdv?: InputMaybe; + optimalPercentDepositedBdv_gt?: InputMaybe; + optimalPercentDepositedBdv_gte?: InputMaybe; + optimalPercentDepositedBdv_in?: InputMaybe>; + optimalPercentDepositedBdv_lt?: InputMaybe; + optimalPercentDepositedBdv_lte?: InputMaybe; + optimalPercentDepositedBdv_not?: InputMaybe; + optimalPercentDepositedBdv_not_in?: InputMaybe>; + or?: InputMaybe>>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + selector?: InputMaybe; + selector_contains?: InputMaybe; + selector_gt?: InputMaybe; + selector_gte?: InputMaybe; + selector_in?: InputMaybe>; + selector_lt?: InputMaybe; + selector_lte?: InputMaybe; + selector_not?: InputMaybe; + selector_not_contains?: InputMaybe; + selector_not_in?: InputMaybe>; + stalkEarnedPerSeason?: InputMaybe; + stalkEarnedPerSeason_gt?: InputMaybe; + stalkEarnedPerSeason_gte?: InputMaybe; + stalkEarnedPerSeason_in?: InputMaybe>; + stalkEarnedPerSeason_lt?: InputMaybe; + stalkEarnedPerSeason_lte?: InputMaybe; + stalkEarnedPerSeason_not?: InputMaybe; + stalkEarnedPerSeason_not_in?: InputMaybe>; + stalkIssuedPerBdv?: InputMaybe; + stalkIssuedPerBdv_gt?: InputMaybe; + stalkIssuedPerBdv_gte?: InputMaybe; + stalkIssuedPerBdv_in?: InputMaybe>; + stalkIssuedPerBdv_lt?: InputMaybe; + stalkIssuedPerBdv_lte?: InputMaybe; + stalkIssuedPerBdv_not?: InputMaybe; + stalkIssuedPerBdv_not_in?: InputMaybe>; + stemTip?: InputMaybe; + stemTip_gt?: InputMaybe; + stemTip_gte?: InputMaybe; + stemTip_in?: InputMaybe>; + stemTip_lt?: InputMaybe; + stemTip_lte?: InputMaybe; + stemTip_not?: InputMaybe; + stemTip_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum WhitelistTokenHourlySnapshot_OrderBy { + Bdv = 'bdv', + CreatedAt = 'createdAt', + DeltaBdv = 'deltaBdv', + DeltaGaugePoints = 'deltaGaugePoints', + DeltaIsGaugeEnabled = 'deltaIsGaugeEnabled', + DeltaMilestoneSeason = 'deltaMilestoneSeason', + DeltaOptimalPercentDepositedBdv = 'deltaOptimalPercentDepositedBdv', + DeltaStalkEarnedPerSeason = 'deltaStalkEarnedPerSeason', + DeltaStalkIssuedPerBdv = 'deltaStalkIssuedPerBdv', + DeltaStemTip = 'deltaStemTip', + GaugePoints = 'gaugePoints', + Id = 'id', + IsGaugeEnabled = 'isGaugeEnabled', + MilestoneSeason = 'milestoneSeason', + OptimalPercentDepositedBdv = 'optimalPercentDepositedBdv', + Season = 'season', + Selector = 'selector', + StalkEarnedPerSeason = 'stalkEarnedPerSeason', + StalkIssuedPerBdv = 'stalkIssuedPerBdv', + StemTip = 'stemTip', + Token = 'token', + TokenDecimals = 'token__decimals', + TokenGaugePoints = 'token__gaugePoints', + TokenId = 'token__id', + TokenIsGaugeEnabled = 'token__isGaugeEnabled', + TokenLastDailySnapshotDay = 'token__lastDailySnapshotDay', + TokenLastHourlySnapshotSeason = 'token__lastHourlySnapshotSeason', + TokenMilestoneSeason = 'token__milestoneSeason', + TokenOptimalPercentDepositedBdv = 'token__optimalPercentDepositedBdv', + TokenSelector = 'token__selector', + TokenStalkEarnedPerSeason = 'token__stalkEarnedPerSeason', + TokenStalkIssuedPerBdv = 'token__stalkIssuedPerBdv', + TokenStemTip = 'token__stemTip', + TokenUpdatedAt = 'token__updatedAt', + UpdatedAt = 'updatedAt' +} + +export type WhitelistTokenSetting = { + __typename?: 'WhitelistTokenSetting'; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Number of decimals in this token */ + decimals: Scalars['Int']['output']; + /** [Seed Gauge] Current Gauge Points */ + gaugePoints?: Maybe; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Contract address for the whitelisted token */ + id: Scalars['Bytes']['output']; + /** Whether the seed gauge is enabled on this whitelisted token */ + isGaugeEnabled: Scalars['Boolean']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** The last season in which the stalkEarnedPerSeason for this token was updated. */ + milestoneSeason: Scalars['Int']['output']; + /** [Seed Gauge] The current optimal targeted distribution of BDV for this whitelisted asset */ + optimalPercentDepositedBdv?: Maybe; + /** Encoded BDV selector */ + selector: Scalars['Bytes']['output']; + /** Represents how much Stalk one BDV of the underlying deposited token grows each season. */ + stalkEarnedPerSeason: Scalars['BigInt']['output']; + /** The stalk per BDV that the silo grants in exchange for depositing this token. */ + stalkIssuedPerBdv: Scalars['BigInt']['output']; + /** The stem tip of the whitelisted token. Used to derive cumulative Stalk growth. */ + stemTip: Scalars['BigInt']['output']; + /** Last timestamp entity was updated */ + updatedAt: Scalars['BigInt']['output']; +}; + + +export type WhitelistTokenSettingDailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WhitelistTokenSettingHourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type WhitelistTokenSetting_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + dailySnapshots_?: InputMaybe; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + gaugePoints?: InputMaybe; + gaugePoints_gt?: InputMaybe; + gaugePoints_gte?: InputMaybe; + gaugePoints_in?: InputMaybe>; + gaugePoints_lt?: InputMaybe; + gaugePoints_lte?: InputMaybe; + gaugePoints_not?: InputMaybe; + gaugePoints_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + isGaugeEnabled?: InputMaybe; + isGaugeEnabled_in?: InputMaybe>; + isGaugeEnabled_not?: InputMaybe; + isGaugeEnabled_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + milestoneSeason?: InputMaybe; + milestoneSeason_gt?: InputMaybe; + milestoneSeason_gte?: InputMaybe; + milestoneSeason_in?: InputMaybe>; + milestoneSeason_lt?: InputMaybe; + milestoneSeason_lte?: InputMaybe; + milestoneSeason_not?: InputMaybe; + milestoneSeason_not_in?: InputMaybe>; + optimalPercentDepositedBdv?: InputMaybe; + optimalPercentDepositedBdv_gt?: InputMaybe; + optimalPercentDepositedBdv_gte?: InputMaybe; + optimalPercentDepositedBdv_in?: InputMaybe>; + optimalPercentDepositedBdv_lt?: InputMaybe; + optimalPercentDepositedBdv_lte?: InputMaybe; + optimalPercentDepositedBdv_not?: InputMaybe; + optimalPercentDepositedBdv_not_in?: InputMaybe>; + or?: InputMaybe>>; + selector?: InputMaybe; + selector_contains?: InputMaybe; + selector_gt?: InputMaybe; + selector_gte?: InputMaybe; + selector_in?: InputMaybe>; + selector_lt?: InputMaybe; + selector_lte?: InputMaybe; + selector_not?: InputMaybe; + selector_not_contains?: InputMaybe; + selector_not_in?: InputMaybe>; + stalkEarnedPerSeason?: InputMaybe; + stalkEarnedPerSeason_gt?: InputMaybe; + stalkEarnedPerSeason_gte?: InputMaybe; + stalkEarnedPerSeason_in?: InputMaybe>; + stalkEarnedPerSeason_lt?: InputMaybe; + stalkEarnedPerSeason_lte?: InputMaybe; + stalkEarnedPerSeason_not?: InputMaybe; + stalkEarnedPerSeason_not_in?: InputMaybe>; + stalkIssuedPerBdv?: InputMaybe; + stalkIssuedPerBdv_gt?: InputMaybe; + stalkIssuedPerBdv_gte?: InputMaybe; + stalkIssuedPerBdv_in?: InputMaybe>; + stalkIssuedPerBdv_lt?: InputMaybe; + stalkIssuedPerBdv_lte?: InputMaybe; + stalkIssuedPerBdv_not?: InputMaybe; + stalkIssuedPerBdv_not_in?: InputMaybe>; + stemTip?: InputMaybe; + stemTip_gt?: InputMaybe; + stemTip_gte?: InputMaybe; + stemTip_in?: InputMaybe>; + stemTip_lt?: InputMaybe; + stemTip_lte?: InputMaybe; + stemTip_not?: InputMaybe; + stemTip_not_in?: InputMaybe>; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum WhitelistTokenSetting_OrderBy { + DailySnapshots = 'dailySnapshots', + Decimals = 'decimals', + GaugePoints = 'gaugePoints', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + IsGaugeEnabled = 'isGaugeEnabled', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + MilestoneSeason = 'milestoneSeason', + OptimalPercentDepositedBdv = 'optimalPercentDepositedBdv', + Selector = 'selector', + StalkEarnedPerSeason = 'stalkEarnedPerSeason', + StalkIssuedPerBdv = 'stalkIssuedPerBdv', + StemTip = 'stemTip', + UpdatedAt = 'updatedAt' +} + +export type WrappedDepositErc20 = { + __typename?: 'WrappedDepositERC20'; + /** Projected apy from percent change in redeem rate over the past 7d */ + apy7d?: Maybe; + /** Projected apy from percent change in redeem rate over the past 24h */ + apy24h?: Maybe; + /** Projected apy from percent change in redeem rate over the past 30d */ + apy30d?: Maybe; + /** Projected apy from percent change in redeem rate over the past 90d */ + apy90d?: Maybe; + /** 'beanstalk' */ + beanstalk: Beanstalk; + /** Link to daily snapshot data */ + dailySnapshots: Array; + /** Number of decimals for the token */ + decimals: Scalars['Int']['output']; + /** Link to hourly snapshot data */ + hourlySnapshots: Array; + /** Address of the wrapped silo token */ + id: Scalars['Bytes']['output']; + /** Day of when the previous daily snapshot was taken/updated */ + lastDailySnapshotDay?: Maybe; + /** Season when the previous hourly snapshot was taken/updated */ + lastHourlySnapshotSeason?: Maybe; + /** Amount of underlying tokens redeemable for 1e(decimals) of this wrapped token */ + redeemRate: Scalars['BigInt']['output']; + /** Silo stats for this wrapped deposit contract */ + silo: Silo; + /** Total token supply */ + supply: Scalars['BigInt']['output']; + /** The whitelisted silo deposit token that this erc20 is wrapping */ + underlyingAsset: WhitelistTokenSetting; +}; + + +export type WrappedDepositErc20DailySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type WrappedDepositErc20HourlySnapshotsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type WrappedDepositErc20DailySnapshot = { + __typename?: 'WrappedDepositERC20DailySnapshot'; + /** Projected apy from percent change in redeem rate over the past 7d */ + apy7d?: Maybe; + /** Projected apy from percent change in redeem rate over the past 24h */ + apy24h?: Maybe; + /** Projected apy from percent change in redeem rate over the past 30d */ + apy30d?: Maybe; + /** Projected apy from percent change in redeem rate over the past 90d */ + apy90d?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** Delta of redeemRate */ + deltaRedeemRate: Scalars['BigInt']['output']; + /** Delta of supply */ + deltaSupply: Scalars['BigInt']['output']; + /** Token address - Day */ + id: Scalars['ID']['output']; + /** Amount of underlying tokens redeemable for 1e(decimals) of this wrapped token */ + redeemRate: Scalars['BigInt']['output']; + /** The season for this snapshot */ + season: Scalars['Int']['output']; + /** Daily Silo stats for this wrapped deposit contract */ + siloDailySnapshot: SiloHourlySnapshot; + /** Total token supply */ + supply: Scalars['BigInt']['output']; + /** WrappedDepositERC20 associated with this snapshot */ + token: WrappedDepositErc20; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type WrappedDepositErc20DailySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + apy7d?: InputMaybe; + apy7d_gt?: InputMaybe; + apy7d_gte?: InputMaybe; + apy7d_in?: InputMaybe>; + apy7d_lt?: InputMaybe; + apy7d_lte?: InputMaybe; + apy7d_not?: InputMaybe; + apy7d_not_in?: InputMaybe>; + apy24h?: InputMaybe; + apy24h_gt?: InputMaybe; + apy24h_gte?: InputMaybe; + apy24h_in?: InputMaybe>; + apy24h_lt?: InputMaybe; + apy24h_lte?: InputMaybe; + apy24h_not?: InputMaybe; + apy24h_not_in?: InputMaybe>; + apy30d?: InputMaybe; + apy30d_gt?: InputMaybe; + apy30d_gte?: InputMaybe; + apy30d_in?: InputMaybe>; + apy30d_lt?: InputMaybe; + apy30d_lte?: InputMaybe; + apy30d_not?: InputMaybe; + apy30d_not_in?: InputMaybe>; + apy90d?: InputMaybe; + apy90d_gt?: InputMaybe; + apy90d_gte?: InputMaybe; + apy90d_in?: InputMaybe>; + apy90d_lt?: InputMaybe; + apy90d_lte?: InputMaybe; + apy90d_not?: InputMaybe; + apy90d_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaRedeemRate?: InputMaybe; + deltaRedeemRate_gt?: InputMaybe; + deltaRedeemRate_gte?: InputMaybe; + deltaRedeemRate_in?: InputMaybe>; + deltaRedeemRate_lt?: InputMaybe; + deltaRedeemRate_lte?: InputMaybe; + deltaRedeemRate_not?: InputMaybe; + deltaRedeemRate_not_in?: InputMaybe>; + deltaSupply?: InputMaybe; + deltaSupply_gt?: InputMaybe; + deltaSupply_gte?: InputMaybe; + deltaSupply_in?: InputMaybe>; + deltaSupply_lt?: InputMaybe; + deltaSupply_lte?: InputMaybe; + deltaSupply_not?: InputMaybe; + deltaSupply_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + redeemRate?: InputMaybe; + redeemRate_gt?: InputMaybe; + redeemRate_gte?: InputMaybe; + redeemRate_in?: InputMaybe>; + redeemRate_lt?: InputMaybe; + redeemRate_lte?: InputMaybe; + redeemRate_not?: InputMaybe; + redeemRate_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + siloDailySnapshot?: InputMaybe; + siloDailySnapshot_?: InputMaybe; + siloDailySnapshot_contains?: InputMaybe; + siloDailySnapshot_contains_nocase?: InputMaybe; + siloDailySnapshot_ends_with?: InputMaybe; + siloDailySnapshot_ends_with_nocase?: InputMaybe; + siloDailySnapshot_gt?: InputMaybe; + siloDailySnapshot_gte?: InputMaybe; + siloDailySnapshot_in?: InputMaybe>; + siloDailySnapshot_lt?: InputMaybe; + siloDailySnapshot_lte?: InputMaybe; + siloDailySnapshot_not?: InputMaybe; + siloDailySnapshot_not_contains?: InputMaybe; + siloDailySnapshot_not_contains_nocase?: InputMaybe; + siloDailySnapshot_not_ends_with?: InputMaybe; + siloDailySnapshot_not_ends_with_nocase?: InputMaybe; + siloDailySnapshot_not_in?: InputMaybe>; + siloDailySnapshot_not_starts_with?: InputMaybe; + siloDailySnapshot_not_starts_with_nocase?: InputMaybe; + siloDailySnapshot_starts_with?: InputMaybe; + siloDailySnapshot_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum WrappedDepositErc20DailySnapshot_OrderBy { + Apy7d = 'apy7d', + Apy24h = 'apy24h', + Apy30d = 'apy30d', + Apy90d = 'apy90d', + CreatedAt = 'createdAt', + DeltaRedeemRate = 'deltaRedeemRate', + DeltaSupply = 'deltaSupply', + Id = 'id', + RedeemRate = 'redeemRate', + Season = 'season', + SiloDailySnapshot = 'siloDailySnapshot', + SiloDailySnapshotActiveFarmers = 'siloDailySnapshot__activeFarmers', + SiloDailySnapshotAvgConvertDownPenalty = 'siloDailySnapshot__avgConvertDownPenalty', + SiloDailySnapshotAvgGrownStalkPerBdvPerSeason = 'siloDailySnapshot__avgGrownStalkPerBdvPerSeason', + SiloDailySnapshotBeanMints = 'siloDailySnapshot__beanMints', + SiloDailySnapshotBeanToMaxLpGpPerBdvRatio = 'siloDailySnapshot__beanToMaxLpGpPerBdvRatio', + SiloDailySnapshotBonusStalkConvertUp = 'siloDailySnapshot__bonusStalkConvertUp', + SiloDailySnapshotCaseId = 'siloDailySnapshot__caseId', + SiloDailySnapshotConvertDownPenalty = 'siloDailySnapshot__convertDownPenalty', + SiloDailySnapshotCreatedAt = 'siloDailySnapshot__createdAt', + SiloDailySnapshotCropRatio = 'siloDailySnapshot__cropRatio', + SiloDailySnapshotDeltaActiveFarmers = 'siloDailySnapshot__deltaActiveFarmers', + SiloDailySnapshotDeltaAvgConvertDownPenalty = 'siloDailySnapshot__deltaAvgConvertDownPenalty', + SiloDailySnapshotDeltaAvgGrownStalkPerBdvPerSeason = 'siloDailySnapshot__deltaAvgGrownStalkPerBdvPerSeason', + SiloDailySnapshotDeltaBeanMints = 'siloDailySnapshot__deltaBeanMints', + SiloDailySnapshotDeltaBeanToMaxLpGpPerBdvRatio = 'siloDailySnapshot__deltaBeanToMaxLpGpPerBdvRatio', + SiloDailySnapshotDeltaBonusStalkConvertUp = 'siloDailySnapshot__deltaBonusStalkConvertUp', + SiloDailySnapshotDeltaConvertDownPenalty = 'siloDailySnapshot__deltaConvertDownPenalty', + SiloDailySnapshotDeltaCropRatio = 'siloDailySnapshot__deltaCropRatio', + SiloDailySnapshotDeltaDepositedBdv = 'siloDailySnapshot__deltaDepositedBDV', + SiloDailySnapshotDeltaGerminatingStalk = 'siloDailySnapshot__deltaGerminatingStalk', + SiloDailySnapshotDeltaGrownStalkPerSeason = 'siloDailySnapshot__deltaGrownStalkPerSeason', + SiloDailySnapshotDeltaPenalizedStalkConvertDown = 'siloDailySnapshot__deltaPenalizedStalkConvertDown', + SiloDailySnapshotDeltaPlantableStalk = 'siloDailySnapshot__deltaPlantableStalk', + SiloDailySnapshotDeltaPlantedBeans = 'siloDailySnapshot__deltaPlantedBeans', + SiloDailySnapshotDeltaRoots = 'siloDailySnapshot__deltaRoots', + SiloDailySnapshotDeltaStalk = 'siloDailySnapshot__deltaStalk', + SiloDailySnapshotDeltaTotalBdvConvertUp = 'siloDailySnapshot__deltaTotalBdvConvertUp', + SiloDailySnapshotDeltaTotalBdvConvertUpBonus = 'siloDailySnapshot__deltaTotalBdvConvertUpBonus', + SiloDailySnapshotDeltaUnpenalizedStalkConvertDown = 'siloDailySnapshot__deltaUnpenalizedStalkConvertDown', + SiloDailySnapshotDepositedBdv = 'siloDailySnapshot__depositedBDV', + SiloDailySnapshotGerminatingStalk = 'siloDailySnapshot__germinatingStalk', + SiloDailySnapshotGrownStalkPerSeason = 'siloDailySnapshot__grownStalkPerSeason', + SiloDailySnapshotId = 'siloDailySnapshot__id', + SiloDailySnapshotPenalizedStalkConvertDown = 'siloDailySnapshot__penalizedStalkConvertDown', + SiloDailySnapshotPlantableStalk = 'siloDailySnapshot__plantableStalk', + SiloDailySnapshotPlantedBeans = 'siloDailySnapshot__plantedBeans', + SiloDailySnapshotRoots = 'siloDailySnapshot__roots', + SiloDailySnapshotSeason = 'siloDailySnapshot__season', + SiloDailySnapshotStalk = 'siloDailySnapshot__stalk', + SiloDailySnapshotTotalBdvConvertUp = 'siloDailySnapshot__totalBdvConvertUp', + SiloDailySnapshotTotalBdvConvertUpBonus = 'siloDailySnapshot__totalBdvConvertUpBonus', + SiloDailySnapshotUnpenalizedStalkConvertDown = 'siloDailySnapshot__unpenalizedStalkConvertDown', + SiloDailySnapshotUpdatedAt = 'siloDailySnapshot__updatedAt', + Supply = 'supply', + Token = 'token', + TokenApy7d = 'token__apy7d', + TokenApy24h = 'token__apy24h', + TokenApy30d = 'token__apy30d', + TokenApy90d = 'token__apy90d', + TokenDecimals = 'token__decimals', + TokenId = 'token__id', + TokenLastDailySnapshotDay = 'token__lastDailySnapshotDay', + TokenLastHourlySnapshotSeason = 'token__lastHourlySnapshotSeason', + TokenRedeemRate = 'token__redeemRate', + TokenSupply = 'token__supply', + UpdatedAt = 'updatedAt' +} + +export type WrappedDepositErc20HourlySnapshot = { + __typename?: 'WrappedDepositERC20HourlySnapshot'; + /** Projected apy from percent change in redeem rate over the past 7d */ + apy7d?: Maybe; + /** Projected apy from percent change in redeem rate over the past 24h */ + apy24h?: Maybe; + /** Projected apy from percent change in redeem rate over the past 30d */ + apy30d?: Maybe; + /** Projected apy from percent change in redeem rate over the past 90d */ + apy90d?: Maybe; + /** Timestamp of initial snapshot creation */ + createdAt: Scalars['BigInt']['output']; + /** Delta of redeemRate */ + deltaRedeemRate: Scalars['BigInt']['output']; + /** Delta of supply */ + deltaSupply: Scalars['BigInt']['output']; + /** Token address - Season */ + id: Scalars['ID']['output']; + /** Amount of underlying tokens redeemable for 1e(decimals) of this wrapped token */ + redeemRate: Scalars['BigInt']['output']; + /** The season for this snapshot */ + season: Scalars['Int']['output']; + /** Hourly Silo stats for this wrapped deposit contract */ + siloHourlySnapshot: SiloHourlySnapshot; + /** Total token supply */ + supply: Scalars['BigInt']['output']; + /** WrappedDepositERC20 associated with this snapshot */ + token: WrappedDepositErc20; + /** Timestamp of last entity update */ + updatedAt: Scalars['BigInt']['output']; +}; + +export type WrappedDepositErc20HourlySnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + apy7d?: InputMaybe; + apy7d_gt?: InputMaybe; + apy7d_gte?: InputMaybe; + apy7d_in?: InputMaybe>; + apy7d_lt?: InputMaybe; + apy7d_lte?: InputMaybe; + apy7d_not?: InputMaybe; + apy7d_not_in?: InputMaybe>; + apy24h?: InputMaybe; + apy24h_gt?: InputMaybe; + apy24h_gte?: InputMaybe; + apy24h_in?: InputMaybe>; + apy24h_lt?: InputMaybe; + apy24h_lte?: InputMaybe; + apy24h_not?: InputMaybe; + apy24h_not_in?: InputMaybe>; + apy30d?: InputMaybe; + apy30d_gt?: InputMaybe; + apy30d_gte?: InputMaybe; + apy30d_in?: InputMaybe>; + apy30d_lt?: InputMaybe; + apy30d_lte?: InputMaybe; + apy30d_not?: InputMaybe; + apy30d_not_in?: InputMaybe>; + apy90d?: InputMaybe; + apy90d_gt?: InputMaybe; + apy90d_gte?: InputMaybe; + apy90d_in?: InputMaybe>; + apy90d_lt?: InputMaybe; + apy90d_lte?: InputMaybe; + apy90d_not?: InputMaybe; + apy90d_not_in?: InputMaybe>; + createdAt?: InputMaybe; + createdAt_gt?: InputMaybe; + createdAt_gte?: InputMaybe; + createdAt_in?: InputMaybe>; + createdAt_lt?: InputMaybe; + createdAt_lte?: InputMaybe; + createdAt_not?: InputMaybe; + createdAt_not_in?: InputMaybe>; + deltaRedeemRate?: InputMaybe; + deltaRedeemRate_gt?: InputMaybe; + deltaRedeemRate_gte?: InputMaybe; + deltaRedeemRate_in?: InputMaybe>; + deltaRedeemRate_lt?: InputMaybe; + deltaRedeemRate_lte?: InputMaybe; + deltaRedeemRate_not?: InputMaybe; + deltaRedeemRate_not_in?: InputMaybe>; + deltaSupply?: InputMaybe; + deltaSupply_gt?: InputMaybe; + deltaSupply_gte?: InputMaybe; + deltaSupply_in?: InputMaybe>; + deltaSupply_lt?: InputMaybe; + deltaSupply_lte?: InputMaybe; + deltaSupply_not?: InputMaybe; + deltaSupply_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + or?: InputMaybe>>; + redeemRate?: InputMaybe; + redeemRate_gt?: InputMaybe; + redeemRate_gte?: InputMaybe; + redeemRate_in?: InputMaybe>; + redeemRate_lt?: InputMaybe; + redeemRate_lte?: InputMaybe; + redeemRate_not?: InputMaybe; + redeemRate_not_in?: InputMaybe>; + season?: InputMaybe; + season_gt?: InputMaybe; + season_gte?: InputMaybe; + season_in?: InputMaybe>; + season_lt?: InputMaybe; + season_lte?: InputMaybe; + season_not?: InputMaybe; + season_not_in?: InputMaybe>; + siloHourlySnapshot?: InputMaybe; + siloHourlySnapshot_?: InputMaybe; + siloHourlySnapshot_contains?: InputMaybe; + siloHourlySnapshot_contains_nocase?: InputMaybe; + siloHourlySnapshot_ends_with?: InputMaybe; + siloHourlySnapshot_ends_with_nocase?: InputMaybe; + siloHourlySnapshot_gt?: InputMaybe; + siloHourlySnapshot_gte?: InputMaybe; + siloHourlySnapshot_in?: InputMaybe>; + siloHourlySnapshot_lt?: InputMaybe; + siloHourlySnapshot_lte?: InputMaybe; + siloHourlySnapshot_not?: InputMaybe; + siloHourlySnapshot_not_contains?: InputMaybe; + siloHourlySnapshot_not_contains_nocase?: InputMaybe; + siloHourlySnapshot_not_ends_with?: InputMaybe; + siloHourlySnapshot_not_ends_with_nocase?: InputMaybe; + siloHourlySnapshot_not_in?: InputMaybe>; + siloHourlySnapshot_not_starts_with?: InputMaybe; + siloHourlySnapshot_not_starts_with_nocase?: InputMaybe; + siloHourlySnapshot_starts_with?: InputMaybe; + siloHourlySnapshot_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + updatedAt?: InputMaybe; + updatedAt_gt?: InputMaybe; + updatedAt_gte?: InputMaybe; + updatedAt_in?: InputMaybe>; + updatedAt_lt?: InputMaybe; + updatedAt_lte?: InputMaybe; + updatedAt_not?: InputMaybe; + updatedAt_not_in?: InputMaybe>; +}; + +export enum WrappedDepositErc20HourlySnapshot_OrderBy { + Apy7d = 'apy7d', + Apy24h = 'apy24h', + Apy30d = 'apy30d', + Apy90d = 'apy90d', + CreatedAt = 'createdAt', + DeltaRedeemRate = 'deltaRedeemRate', + DeltaSupply = 'deltaSupply', + Id = 'id', + RedeemRate = 'redeemRate', + Season = 'season', + SiloHourlySnapshot = 'siloHourlySnapshot', + SiloHourlySnapshotActiveFarmers = 'siloHourlySnapshot__activeFarmers', + SiloHourlySnapshotAvgConvertDownPenalty = 'siloHourlySnapshot__avgConvertDownPenalty', + SiloHourlySnapshotAvgGrownStalkPerBdvPerSeason = 'siloHourlySnapshot__avgGrownStalkPerBdvPerSeason', + SiloHourlySnapshotBeanMints = 'siloHourlySnapshot__beanMints', + SiloHourlySnapshotBeanToMaxLpGpPerBdvRatio = 'siloHourlySnapshot__beanToMaxLpGpPerBdvRatio', + SiloHourlySnapshotBonusStalkConvertUp = 'siloHourlySnapshot__bonusStalkConvertUp', + SiloHourlySnapshotCaseId = 'siloHourlySnapshot__caseId', + SiloHourlySnapshotConvertDownPenalty = 'siloHourlySnapshot__convertDownPenalty', + SiloHourlySnapshotCreatedAt = 'siloHourlySnapshot__createdAt', + SiloHourlySnapshotCropRatio = 'siloHourlySnapshot__cropRatio', + SiloHourlySnapshotDeltaActiveFarmers = 'siloHourlySnapshot__deltaActiveFarmers', + SiloHourlySnapshotDeltaAvgConvertDownPenalty = 'siloHourlySnapshot__deltaAvgConvertDownPenalty', + SiloHourlySnapshotDeltaAvgGrownStalkPerBdvPerSeason = 'siloHourlySnapshot__deltaAvgGrownStalkPerBdvPerSeason', + SiloHourlySnapshotDeltaBeanMints = 'siloHourlySnapshot__deltaBeanMints', + SiloHourlySnapshotDeltaBeanToMaxLpGpPerBdvRatio = 'siloHourlySnapshot__deltaBeanToMaxLpGpPerBdvRatio', + SiloHourlySnapshotDeltaBonusStalkConvertUp = 'siloHourlySnapshot__deltaBonusStalkConvertUp', + SiloHourlySnapshotDeltaConvertDownPenalty = 'siloHourlySnapshot__deltaConvertDownPenalty', + SiloHourlySnapshotDeltaCropRatio = 'siloHourlySnapshot__deltaCropRatio', + SiloHourlySnapshotDeltaDepositedBdv = 'siloHourlySnapshot__deltaDepositedBDV', + SiloHourlySnapshotDeltaGerminatingStalk = 'siloHourlySnapshot__deltaGerminatingStalk', + SiloHourlySnapshotDeltaGrownStalkPerSeason = 'siloHourlySnapshot__deltaGrownStalkPerSeason', + SiloHourlySnapshotDeltaPenalizedStalkConvertDown = 'siloHourlySnapshot__deltaPenalizedStalkConvertDown', + SiloHourlySnapshotDeltaPlantableStalk = 'siloHourlySnapshot__deltaPlantableStalk', + SiloHourlySnapshotDeltaPlantedBeans = 'siloHourlySnapshot__deltaPlantedBeans', + SiloHourlySnapshotDeltaRoots = 'siloHourlySnapshot__deltaRoots', + SiloHourlySnapshotDeltaStalk = 'siloHourlySnapshot__deltaStalk', + SiloHourlySnapshotDeltaTotalBdvConvertUp = 'siloHourlySnapshot__deltaTotalBdvConvertUp', + SiloHourlySnapshotDeltaTotalBdvConvertUpBonus = 'siloHourlySnapshot__deltaTotalBdvConvertUpBonus', + SiloHourlySnapshotDeltaUnpenalizedStalkConvertDown = 'siloHourlySnapshot__deltaUnpenalizedStalkConvertDown', + SiloHourlySnapshotDepositedBdv = 'siloHourlySnapshot__depositedBDV', + SiloHourlySnapshotGerminatingStalk = 'siloHourlySnapshot__germinatingStalk', + SiloHourlySnapshotGrownStalkPerSeason = 'siloHourlySnapshot__grownStalkPerSeason', + SiloHourlySnapshotId = 'siloHourlySnapshot__id', + SiloHourlySnapshotPenalizedStalkConvertDown = 'siloHourlySnapshot__penalizedStalkConvertDown', + SiloHourlySnapshotPlantableStalk = 'siloHourlySnapshot__plantableStalk', + SiloHourlySnapshotPlantedBeans = 'siloHourlySnapshot__plantedBeans', + SiloHourlySnapshotRoots = 'siloHourlySnapshot__roots', + SiloHourlySnapshotSeason = 'siloHourlySnapshot__season', + SiloHourlySnapshotStalk = 'siloHourlySnapshot__stalk', + SiloHourlySnapshotTotalBdvConvertUp = 'siloHourlySnapshot__totalBdvConvertUp', + SiloHourlySnapshotTotalBdvConvertUpBonus = 'siloHourlySnapshot__totalBdvConvertUpBonus', + SiloHourlySnapshotUnpenalizedStalkConvertDown = 'siloHourlySnapshot__unpenalizedStalkConvertDown', + SiloHourlySnapshotUpdatedAt = 'siloHourlySnapshot__updatedAt', + Supply = 'supply', + Token = 'token', + TokenApy7d = 'token__apy7d', + TokenApy24h = 'token__apy24h', + TokenApy30d = 'token__apy30d', + TokenApy90d = 'token__apy90d', + TokenDecimals = 'token__decimals', + TokenId = 'token__id', + TokenLastDailySnapshotDay = 'token__lastDailySnapshotDay', + TokenLastHourlySnapshotSeason = 'token__lastHourlySnapshotSeason', + TokenRedeemRate = 'token__redeemRate', + TokenSupply = 'token__supply', + UpdatedAt = 'updatedAt' +} + +export type WrappedDepositErc20_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + and?: InputMaybe>>; + apy7d?: InputMaybe; + apy7d_gt?: InputMaybe; + apy7d_gte?: InputMaybe; + apy7d_in?: InputMaybe>; + apy7d_lt?: InputMaybe; + apy7d_lte?: InputMaybe; + apy7d_not?: InputMaybe; + apy7d_not_in?: InputMaybe>; + apy24h?: InputMaybe; + apy24h_gt?: InputMaybe; + apy24h_gte?: InputMaybe; + apy24h_in?: InputMaybe>; + apy24h_lt?: InputMaybe; + apy24h_lte?: InputMaybe; + apy24h_not?: InputMaybe; + apy24h_not_in?: InputMaybe>; + apy30d?: InputMaybe; + apy30d_gt?: InputMaybe; + apy30d_gte?: InputMaybe; + apy30d_in?: InputMaybe>; + apy30d_lt?: InputMaybe; + apy30d_lte?: InputMaybe; + apy30d_not?: InputMaybe; + apy30d_not_in?: InputMaybe>; + apy90d?: InputMaybe; + apy90d_gt?: InputMaybe; + apy90d_gte?: InputMaybe; + apy90d_in?: InputMaybe>; + apy90d_lt?: InputMaybe; + apy90d_lte?: InputMaybe; + apy90d_not?: InputMaybe; + apy90d_not_in?: InputMaybe>; + beanstalk?: InputMaybe; + beanstalk_?: InputMaybe; + beanstalk_contains?: InputMaybe; + beanstalk_contains_nocase?: InputMaybe; + beanstalk_ends_with?: InputMaybe; + beanstalk_ends_with_nocase?: InputMaybe; + beanstalk_gt?: InputMaybe; + beanstalk_gte?: InputMaybe; + beanstalk_in?: InputMaybe>; + beanstalk_lt?: InputMaybe; + beanstalk_lte?: InputMaybe; + beanstalk_not?: InputMaybe; + beanstalk_not_contains?: InputMaybe; + beanstalk_not_contains_nocase?: InputMaybe; + beanstalk_not_ends_with?: InputMaybe; + beanstalk_not_ends_with_nocase?: InputMaybe; + beanstalk_not_in?: InputMaybe>; + beanstalk_not_starts_with?: InputMaybe; + beanstalk_not_starts_with_nocase?: InputMaybe; + beanstalk_starts_with?: InputMaybe; + beanstalk_starts_with_nocase?: InputMaybe; + dailySnapshots_?: InputMaybe; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + hourlySnapshots_?: InputMaybe; + id?: InputMaybe; + id_contains?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_contains?: InputMaybe; + id_not_in?: InputMaybe>; + lastDailySnapshotDay?: InputMaybe; + lastDailySnapshotDay_gt?: InputMaybe; + lastDailySnapshotDay_gte?: InputMaybe; + lastDailySnapshotDay_in?: InputMaybe>; + lastDailySnapshotDay_lt?: InputMaybe; + lastDailySnapshotDay_lte?: InputMaybe; + lastDailySnapshotDay_not?: InputMaybe; + lastDailySnapshotDay_not_in?: InputMaybe>; + lastHourlySnapshotSeason?: InputMaybe; + lastHourlySnapshotSeason_gt?: InputMaybe; + lastHourlySnapshotSeason_gte?: InputMaybe; + lastHourlySnapshotSeason_in?: InputMaybe>; + lastHourlySnapshotSeason_lt?: InputMaybe; + lastHourlySnapshotSeason_lte?: InputMaybe; + lastHourlySnapshotSeason_not?: InputMaybe; + lastHourlySnapshotSeason_not_in?: InputMaybe>; + or?: InputMaybe>>; + redeemRate?: InputMaybe; + redeemRate_gt?: InputMaybe; + redeemRate_gte?: InputMaybe; + redeemRate_in?: InputMaybe>; + redeemRate_lt?: InputMaybe; + redeemRate_lte?: InputMaybe; + redeemRate_not?: InputMaybe; + redeemRate_not_in?: InputMaybe>; + silo?: InputMaybe; + silo_?: InputMaybe; + silo_contains?: InputMaybe; + silo_contains_nocase?: InputMaybe; + silo_ends_with?: InputMaybe; + silo_ends_with_nocase?: InputMaybe; + silo_gt?: InputMaybe; + silo_gte?: InputMaybe; + silo_in?: InputMaybe>; + silo_lt?: InputMaybe; + silo_lte?: InputMaybe; + silo_not?: InputMaybe; + silo_not_contains?: InputMaybe; + silo_not_contains_nocase?: InputMaybe; + silo_not_ends_with?: InputMaybe; + silo_not_ends_with_nocase?: InputMaybe; + silo_not_in?: InputMaybe>; + silo_not_starts_with?: InputMaybe; + silo_not_starts_with_nocase?: InputMaybe; + silo_starts_with?: InputMaybe; + silo_starts_with_nocase?: InputMaybe; + supply?: InputMaybe; + supply_gt?: InputMaybe; + supply_gte?: InputMaybe; + supply_in?: InputMaybe>; + supply_lt?: InputMaybe; + supply_lte?: InputMaybe; + supply_not?: InputMaybe; + supply_not_in?: InputMaybe>; + underlyingAsset?: InputMaybe; + underlyingAsset_?: InputMaybe; + underlyingAsset_contains?: InputMaybe; + underlyingAsset_contains_nocase?: InputMaybe; + underlyingAsset_ends_with?: InputMaybe; + underlyingAsset_ends_with_nocase?: InputMaybe; + underlyingAsset_gt?: InputMaybe; + underlyingAsset_gte?: InputMaybe; + underlyingAsset_in?: InputMaybe>; + underlyingAsset_lt?: InputMaybe; + underlyingAsset_lte?: InputMaybe; + underlyingAsset_not?: InputMaybe; + underlyingAsset_not_contains?: InputMaybe; + underlyingAsset_not_contains_nocase?: InputMaybe; + underlyingAsset_not_ends_with?: InputMaybe; + underlyingAsset_not_ends_with_nocase?: InputMaybe; + underlyingAsset_not_in?: InputMaybe>; + underlyingAsset_not_starts_with?: InputMaybe; + underlyingAsset_not_starts_with_nocase?: InputMaybe; + underlyingAsset_starts_with?: InputMaybe; + underlyingAsset_starts_with_nocase?: InputMaybe; +}; + +export enum WrappedDepositErc20_OrderBy { + Apy7d = 'apy7d', + Apy24h = 'apy24h', + Apy30d = 'apy30d', + Apy90d = 'apy90d', + Beanstalk = 'beanstalk', + BeanstalkFertilizer1155 = 'beanstalk__fertilizer1155', + BeanstalkId = 'beanstalk__id', + BeanstalkLastSeason = 'beanstalk__lastSeason', + BeanstalkToken = 'beanstalk__token', + DailySnapshots = 'dailySnapshots', + Decimals = 'decimals', + HourlySnapshots = 'hourlySnapshots', + Id = 'id', + LastDailySnapshotDay = 'lastDailySnapshotDay', + LastHourlySnapshotSeason = 'lastHourlySnapshotSeason', + RedeemRate = 'redeemRate', + Silo = 'silo', + SiloActiveFarmers = 'silo__activeFarmers', + SiloAvgConvertDownPenalty = 'silo__avgConvertDownPenalty', + SiloAvgGrownStalkPerBdvPerSeason = 'silo__avgGrownStalkPerBdvPerSeason', + SiloBeanMints = 'silo__beanMints', + SiloBeanToMaxLpGpPerBdvRatio = 'silo__beanToMaxLpGpPerBdvRatio', + SiloBonusStalkConvertUp = 'silo__bonusStalkConvertUp', + SiloConvertDownPenalty = 'silo__convertDownPenalty', + SiloCropRatio = 'silo__cropRatio', + SiloDepositedBdv = 'silo__depositedBDV', + SiloGerminatingStalk = 'silo__germinatingStalk', + SiloGrownStalkPerSeason = 'silo__grownStalkPerSeason', + SiloId = 'silo__id', + SiloLastDailySnapshotDay = 'silo__lastDailySnapshotDay', + SiloLastHourlySnapshotSeason = 'silo__lastHourlySnapshotSeason', + SiloPenalizedStalkConvertDown = 'silo__penalizedStalkConvertDown', + SiloPlantableStalk = 'silo__plantableStalk', + SiloPlantedBeans = 'silo__plantedBeans', + SiloRoots = 'silo__roots', + SiloStalk = 'silo__stalk', + SiloTotalBdvConvertUp = 'silo__totalBdvConvertUp', + SiloTotalBdvConvertUpBonus = 'silo__totalBdvConvertUpBonus', + SiloUnmigratedL1DepositedBdv = 'silo__unmigratedL1DepositedBdv', + SiloUnpenalizedStalkConvertDown = 'silo__unpenalizedStalkConvertDown', + Supply = 'supply', + UnderlyingAsset = 'underlyingAsset', + UnderlyingAssetDecimals = 'underlyingAsset__decimals', + UnderlyingAssetGaugePoints = 'underlyingAsset__gaugePoints', + UnderlyingAssetId = 'underlyingAsset__id', + UnderlyingAssetIsGaugeEnabled = 'underlyingAsset__isGaugeEnabled', + UnderlyingAssetLastDailySnapshotDay = 'underlyingAsset__lastDailySnapshotDay', + UnderlyingAssetLastHourlySnapshotSeason = 'underlyingAsset__lastHourlySnapshotSeason', + UnderlyingAssetMilestoneSeason = 'underlyingAsset__milestoneSeason', + UnderlyingAssetOptimalPercentDepositedBdv = 'underlyingAsset__optimalPercentDepositedBdv', + UnderlyingAssetSelector = 'underlyingAsset__selector', + UnderlyingAssetStalkEarnedPerSeason = 'underlyingAsset__stalkEarnedPerSeason', + UnderlyingAssetStalkIssuedPerBdv = 'underlyingAsset__stalkIssuedPerBdv', + UnderlyingAssetStemTip = 'underlyingAsset__stemTip', + UnderlyingAssetUpdatedAt = 'underlyingAsset__updatedAt' +} + +export type _Block_ = { + __typename?: '_Block_'; + /** The hash of the block */ + hash?: Maybe; + /** The block number */ + number: Scalars['Int']['output']; + /** The hash of the parent block */ + parentHash?: Maybe; + /** Integer representation of the timestamp stored in blocks for the chain */ + timestamp?: Maybe; +}; + +/** The type for the top-level _meta field */ +export type _Meta_ = { + __typename?: '_Meta_'; + /** + * Information about a specific subgraph block. The hash of the block + * will be null if the _meta field has a block constraint that asks for + * a block number. It will be filled if the _meta field has no block constraint + * and therefore asks for the latest block + * + */ + block: _Block_; + /** The deployment ID */ + deployment: Scalars['String']['output']; + /** If `true`, the subgraph encountered indexing errors at some past block */ + hasIndexingErrors: Scalars['Boolean']['output']; +}; + +export enum _SubgraphErrorPolicy_ { + /** Data will be returned even if the subgraph has indexing errors */ + Allow = 'allow', + /** If the subgraph has indexing errors, data will be omitted. The default. */ + Deny = 'deny' +} + +export type BeanstalkAdvancedChartQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanstalkAdvancedChartQuery = { __typename?: 'Query', seasons: Array<{ __typename?: 'Season', id: string, sunriseBlock: any, rewardBeans: any, price: any, deltaBeans: any, raining: boolean, season: number, createdAt: any }>, fieldHourlySnapshots: Array<{ __typename?: 'FieldHourlySnapshot', id: string, caseId?: any | null, issuedSoil: any, deltaSownBeans: any, sownBeans: any, deltaPodDemand: any, blocksToSoldOutSoil?: any | null, podRate: any, temperature: any, deltaTemperature: any, season: number, cultivationFactor?: any | null, cultivationTemperature?: any | null, harvestableIndex: any, harvestablePods: any, harvestedPods: any, numberOfSowers: number, numberOfSows: number, podIndex: any, realRateOfReturn: any, seasonBlock: any, soil: any, soilSoldOut: boolean, unharvestablePods: any }>, siloHourlySnapshots: Array<{ __typename?: 'SiloHourlySnapshot', id: string, beanToMaxLpGpPerBdvRatio: any, deltaBeanToMaxLpGpPerBdvRatio: any, season: number, stalk: any }> }; + +export type FarmerPlotsQueryVariables = Exact<{ + account: Scalars['ID']['input']; +}>; + + +export type FarmerPlotsQuery = { __typename?: 'Query', farmer?: { __typename?: 'Farmer', plots: Array<{ __typename?: 'Plot', beansPerPod: any, createdAt: any, creationHash: any, fullyHarvested: boolean, harvestablePods: any, harvestedPods: any, id: string, index: any, pods: any, season: number, source: PlotSource, sourceHash: any, preTransferSource?: PlotSource | null, updatedAt: any, updatedAtBlock: any, preTransferOwner?: { __typename?: 'Farmer', id: any } | null, listing?: { __typename?: 'PodListing', id: string } | null }> } | null }; + +export type FarmerSiloBalancesQueryVariables = Exact<{ + account: Scalars['ID']['input']; + season: Scalars['Int']['input']; +}>; + + +export type FarmerSiloBalancesQuery = { __typename?: 'Query', farmer?: { __typename?: 'Farmer', deposited: Array<{ __typename?: 'SiloDeposit', season?: number | null, stem?: any | null, token: any, depositedAmount: any, depositedBDV: any }>, withdrawn: Array<{ __typename?: 'SiloWithdraw', token: any, amount: any, season: number }>, claimable: Array<{ __typename?: 'SiloWithdraw', token: any, amount: any, season: number }> } | null }; + +export type FieldIssuedSoilQueryVariables = Exact<{ + season?: InputMaybe; + field_contains_nocase?: InputMaybe; +}>; + + +export type FieldIssuedSoilQuery = { __typename?: 'Query', fieldHourlySnapshots: Array<{ __typename?: 'FieldHourlySnapshot', issuedSoil: any, season: number, soil: any }> }; + +export type FieldSnapshotsQueryVariables = Exact<{ + fieldId: Scalars['Bytes']['input']; + first: Scalars['Int']['input']; +}>; + + +export type FieldSnapshotsQuery = { __typename?: 'Query', fieldHourlySnapshots: Array<{ __typename?: 'FieldHourlySnapshot', blocksToSoldOutSoil?: any | null, caseId?: any | null, deltaHarvestablePods: any, deltaHarvestedPods: any, deltaIssuedSoil: any, deltaNumberOfSowers: number, deltaNumberOfSows: number, deltaPodIndex: any, deltaPodRate: any, deltaRealRateOfReturn: any, deltaSoil: any, deltaSownBeans: any, deltaTemperature: any, deltaUnharvestablePods: any, harvestablePods: any, harvestedPods: any, id: string, issuedSoil: any, numberOfSowers: number, numberOfSows: number, podIndex: any, podRate: any, realRateOfReturn: any, season: number, seasonBlock: any, soil: any, soilSoldOut: boolean, sownBeans: any, temperature: any, unharvestablePods: any, updatedAt: any }> }; + +export type BeanstalkSeasonsTableQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanstalkSeasonsTableQuery = { __typename?: 'Query', seasons: Array<{ __typename?: 'Season', id: string, sunriseBlock: any, rewardBeans: any, price: any, deltaBeans: any, raining: boolean, season: number }>, fieldHourlySnapshots: Array<{ __typename?: 'FieldHourlySnapshot', id: string, caseId?: any | null, issuedSoil: any, deltaSownBeans: any, sownBeans: any, deltaPodDemand: any, blocksToSoldOutSoil?: any | null, podRate: any, temperature: any, deltaTemperature: any, season: number }>, siloHourlySnapshots: Array<{ __typename?: 'SiloHourlySnapshot', id: string, beanToMaxLpGpPerBdvRatio: any, deltaBeanToMaxLpGpPerBdvRatio: any, season: number }> }; + +export type SiloSnapshotsQueryVariables = Exact<{ + first: Scalars['Int']['input']; + id: Scalars['Bytes']['input']; +}>; + + +export type SiloSnapshotsQuery = { __typename?: 'Query', siloHourlySnapshots: Array<{ __typename?: 'SiloHourlySnapshot', beanToMaxLpGpPerBdvRatio: any, deltaBeanMints: any, season: number }> }; + +export type SiloYieldsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type SiloYieldsQuery = { __typename?: 'Query', siloYields: Array<{ __typename?: 'SiloYield', beansPerSeasonEMA: any, beta: any, createdAt: any, season: number, id: string, u: number, whitelistedTokens: Array, emaWindow: EmaWindow, tokenAPYS: Array<{ __typename?: 'TokenYield', beanAPY: any, stalkAPY: any, season: number, createdAt: any, token: any }> }> }; + +export type AllMarketActivityQueryVariables = Exact<{ + first?: InputMaybe; + listings_createdAt_gt?: InputMaybe; + orders_createdAt_gt?: InputMaybe; + fill_createdAt_gt?: InputMaybe; +}>; + + +export type AllMarketActivityQuery = { __typename?: 'Query', podListings: Array<{ __typename?: 'PodListing', id: string, historyID: string, index: any, start: any, mode: number, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxHarvestableIndex: any, minFillAmount: any, originalIndex: any, originalPlaceInLine: any, originalAmount: any, filled: any, amount: any, remainingAmount: any, filledAmount: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any }, fill?: { __typename?: 'PodFill', placeInLine: any } | null }>, podOrders: Array<{ __typename?: 'PodOrder', id: string, historyID: string, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxPlaceInLine: any, minFillAmount: any, beanAmount: any, podAmountFilled: any, beanAmountFilled: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any } }>, podFills: Array<{ __typename?: 'PodFill', id: string, placeInLine: any, amount: any, index: any, start: any, costInBeans: any, createdAt: any, fromFarmer: { __typename?: 'Farmer', id: any }, toFarmer: { __typename?: 'Farmer', id: any }, listing?: { __typename?: 'PodListing', id: string, originalAmount: any } | null, order?: { __typename?: 'PodOrder', id: string, beanAmount: any } | null }> }; + +export type AllPodListingsQueryVariables = Exact<{ + first?: InputMaybe; + status?: InputMaybe; + maxHarvestableIndex: Scalars['BigInt']['input']; + skip?: InputMaybe; +}>; + + +export type AllPodListingsQuery = { __typename?: 'Query', podListings: Array<{ __typename?: 'PodListing', id: string, historyID: string, index: any, start: any, mode: number, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxHarvestableIndex: any, minFillAmount: any, originalIndex: any, originalPlaceInLine: any, originalAmount: any, filled: any, amount: any, remainingAmount: any, filledAmount: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any }, fill?: { __typename?: 'PodFill', placeInLine: any } | null }> }; + +export type AllPodOrdersQueryVariables = Exact<{ + first?: InputMaybe; + status?: InputMaybe; + skip?: InputMaybe; +}>; + + +export type AllPodOrdersQuery = { __typename?: 'Query', podOrders: Array<{ __typename?: 'PodOrder', id: string, historyID: string, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxPlaceInLine: any, minFillAmount: any, beanAmount: any, podAmountFilled: any, beanAmountFilled: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any } }> }; + +export type FarmerMarketActivityQueryVariables = Exact<{ + first?: InputMaybe; + account: Scalars['String']['input']; + listings_createdAt_gt?: InputMaybe; + orders_createdAt_gt?: InputMaybe; + fill_createdAt_gt?: InputMaybe; +}>; + + +export type FarmerMarketActivityQuery = { __typename?: 'Query', podListings: Array<{ __typename?: 'PodListing', id: string, historyID: string, index: any, start: any, mode: number, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxHarvestableIndex: any, minFillAmount: any, originalIndex: any, originalPlaceInLine: any, originalAmount: any, filled: any, amount: any, remainingAmount: any, filledAmount: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any }, fill?: { __typename?: 'PodFill', placeInLine: any } | null }>, podOrders: Array<{ __typename?: 'PodOrder', id: string, historyID: string, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxPlaceInLine: any, minFillAmount: any, beanAmount: any, podAmountFilled: any, beanAmountFilled: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any } }>, podFills: Array<{ __typename?: 'PodFill', id: string, placeInLine: any, amount: any, index: any, start: any, costInBeans: any, createdAt: any, fromFarmer: { __typename?: 'Farmer', id: any }, toFarmer: { __typename?: 'Farmer', id: any }, listing?: { __typename?: 'PodListing', id: string, originalAmount: any } | null, order?: { __typename?: 'PodOrder', id: string, beanAmount: any } | null }> }; + +export type PodFillFragment = { __typename?: 'PodFill', id: string, placeInLine: any, amount: any, index: any, start: any, costInBeans: any, createdAt: any, fromFarmer: { __typename?: 'Farmer', id: any }, toFarmer: { __typename?: 'Farmer', id: any }, listing?: { __typename?: 'PodListing', id: string, originalAmount: any } | null, order?: { __typename?: 'PodOrder', id: string, beanAmount: any } | null }; + +export type PodListingFragment = { __typename?: 'PodListing', id: string, historyID: string, index: any, start: any, mode: number, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxHarvestableIndex: any, minFillAmount: any, originalIndex: any, originalPlaceInLine: any, originalAmount: any, filled: any, amount: any, remainingAmount: any, filledAmount: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any }, fill?: { __typename?: 'PodFill', placeInLine: any } | null }; + +export type PodOrderFragment = { __typename?: 'PodOrder', id: string, historyID: string, pricingType?: number | null, pricePerPod: number, pricingFunction?: any | null, maxPlaceInLine: any, minFillAmount: any, beanAmount: any, podAmountFilled: any, beanAmountFilled: any, status: MarketStatus, createdAt: any, updatedAt: any, creationHash: any, farmer: { __typename?: 'Farmer', id: any } }; + +export type FarmerSeasonalSiloQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; + account?: InputMaybe; +}>; + + +export type FarmerSeasonalSiloQuery = { __typename?: 'Query', siloHourlySnapshots: Array<{ __typename?: 'SiloHourlySnapshot', id: string, season: number, createdAt: any, plantedBeans: any, stalk: any, germinatingStalk: any, depositedBDV: any }> }; + +export type FarmerSeasonalSiloAssetTokenQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; + siloAsset?: InputMaybe; +}>; + + +export type FarmerSeasonalSiloAssetTokenQuery = { __typename?: 'Query', siloAssetHourlySnapshots: Array<{ __typename?: 'SiloAssetHourlySnapshot', id: string, season: number, depositedAmount: any, depositedBDV: any, deltaDepositedBDV: any, deltaDepositedAmount: any, createdAt: any }> }; + +export type BeanstalkSeasonalSiloActiveFarmersQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; + silo?: InputMaybe; +}>; + + +export type BeanstalkSeasonalSiloActiveFarmersQuery = { __typename?: 'Query', siloHourlySnapshots: Array<{ __typename?: 'SiloHourlySnapshot', id: string, season: number, activeFarmers: number }> }; + +export type BeanstalkSeasonalFieldQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; + field?: InputMaybe; +}>; + + +export type BeanstalkSeasonalFieldQuery = { __typename?: 'Query', fieldHourlySnapshots: Array<{ __typename?: 'FieldHourlySnapshot', id: string, season: number, podRate: any, temperature: any, podIndex: any, harvestableIndex: any, sownBeans: any, harvestedPods: any, cultivationFactor?: any | null, cultivationTemperature?: any | null, issuedSoil: any, deltaSownBeans: any, createdAt: any }> }; + +export type SeasonalGaugesInfoQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type SeasonalGaugesInfoQuery = { __typename?: 'Query', gaugesInfoHourlySnapshots: Array<{ __typename?: 'GaugesInfoHourlySnapshot', id: string, g2BonusStalkPerBdv?: any | null, g2MaxConvertCapacity?: any | null, season: number, createdAt: any }> }; + +export type BeanstalkSeasonalMarketPerformanceQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanstalkSeasonalMarketPerformanceQuery = { __typename?: 'Query', marketPerformanceSeasonals: Array<{ __typename?: 'MarketPerformanceSeasonal', id: string, season: number, timestamp?: any | null, thisSeasonTokenUsdPrices?: Array | null, usdChange?: Array | null, percentChange?: Array | null, totalUsdChange?: any | null, totalPercentChange?: any | null, cumulativeUsdChange?: Array | null, cumulativePercentChange?: Array | null, cumulativeTotalUsdChange?: any | null, cumulativeTotalPercentChange?: any | null, silo: { __typename?: 'Silo', allWhitelistedTokens: Array } }> }; + +export type SeasonalNewPintoSnapshotsQueryVariables = Exact<{ + first: Scalars['Int']['input']; +}>; + + +export type SeasonalNewPintoSnapshotsQuery = { __typename?: 'Query', seasons: Array<{ __typename?: 'Season', season: number, deltaBeans: any, rewardBeans: any, floodSiloBeans: any, floodFieldBeans: any, incentiveBeans: any }> }; + +export type BeanstalkSeasonalSiloQueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; + silo?: InputMaybe; +}>; + + +export type BeanstalkSeasonalSiloQuery = { __typename?: 'Query', siloHourlySnapshots: Array<{ __typename?: 'SiloHourlySnapshot', id: string, season: number, stalk: any, avgGrownStalkPerBdvPerSeason: any, depositedBDV: any, createdAt: any }> }; + +export type BeanstalkSeasonalWrappedDepositErc20QueryVariables = Exact<{ + from?: InputMaybe; + to?: InputMaybe; +}>; + + +export type BeanstalkSeasonalWrappedDepositErc20Query = { __typename?: 'Query', wrappedDepositERC20HourlySnapshots: Array<{ __typename?: 'WrappedDepositERC20HourlySnapshot', id: string, season: number, supply: any, redeemRate: any, apy24h?: any | null, apy7d?: any | null, apy30d?: any | null, apy90d?: any | null, createdAt: any }> }; + +export const PodFillFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodFill"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodFill"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"costInBeans"}},{"kind":"Field","name":{"kind":"Name","value":"fromFarmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toFarmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"listing"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"order"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode; +export const PodListingFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodListing"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodListing"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"mode"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxHarvestableIndex"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"originalIndex"}},{"kind":"Field","name":{"kind":"Name","value":"originalPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filled"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"remainingAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filledAmount"}},{"kind":"Field","name":{"kind":"Name","value":"fill"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}}]} as unknown as DocumentNode; +export const PodOrderFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodOrder"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodOrder"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}},{"kind":"Field","name":{"kind":"Name","value":"podAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}}]} as unknown as DocumentNode; +export const BeanstalkAdvancedChartDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkAdvancedChart"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seasons"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sunriseBlock"}},{"kind":"Field","name":{"kind":"Name","value":"rewardBeans"}},{"kind":"Field","name":{"kind":"Name","value":"price"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBeans"}},{"kind":"Field","name":{"kind":"Name","value":"raining"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fieldHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"field"},"value":{"kind":"StringValue","value":"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"caseId"}},{"kind":"Field","name":{"kind":"Name","value":"issuedSoil"}},{"kind":"Field","name":{"kind":"Name","value":"deltaSownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"sownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"deltaPodDemand"}},{"kind":"Field","name":{"kind":"Name","value":"blocksToSoldOutSoil"}},{"kind":"Field","name":{"kind":"Name","value":"podRate"}},{"kind":"Field","name":{"kind":"Name","value":"temperature"}},{"kind":"Field","name":{"kind":"Name","value":"deltaTemperature"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"cultivationFactor"}},{"kind":"Field","name":{"kind":"Name","value":"cultivationTemperature"}},{"kind":"Field","name":{"kind":"Name","value":"harvestableIndex"}},{"kind":"Field","name":{"kind":"Name","value":"harvestablePods"}},{"kind":"Field","name":{"kind":"Name","value":"harvestedPods"}},{"kind":"Field","name":{"kind":"Name","value":"numberOfSowers"}},{"kind":"Field","name":{"kind":"Name","value":"numberOfSows"}},{"kind":"Field","name":{"kind":"Name","value":"podIndex"}},{"kind":"Field","name":{"kind":"Name","value":"realRateOfReturn"}},{"kind":"Field","name":{"kind":"Name","value":"seasonBlock"}},{"kind":"Field","name":{"kind":"Name","value":"soil"}},{"kind":"Field","name":{"kind":"Name","value":"soilSoldOut"}},{"kind":"Field","name":{"kind":"Name","value":"unharvestablePods"}}]}},{"kind":"Field","name":{"kind":"Name","value":"siloHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"silo"},"value":{"kind":"StringValue","value":"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"beanToMaxLpGpPerBdvRatio"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBeanToMaxLpGpPerBdvRatio"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"stalk"}}]}}]}}]} as unknown as DocumentNode; +export const FarmerPlotsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FarmerPlots"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"account"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"farmer"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"plots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"pods_gt"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"fullyHarvested"},"value":{"kind":"BooleanValue","value":false}}]}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"index"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beansPerPod"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}},{"kind":"Field","name":{"kind":"Name","value":"fullyHarvested"}},{"kind":"Field","name":{"kind":"Name","value":"harvestablePods"}},{"kind":"Field","name":{"kind":"Name","value":"harvestedPods"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"pods"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"source"}},{"kind":"Field","name":{"kind":"Name","value":"sourceHash"}},{"kind":"Field","name":{"kind":"Name","value":"preTransferSource"}},{"kind":"Field","name":{"kind":"Name","value":"preTransferOwner"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAtBlock"}},{"kind":"Field","name":{"kind":"Name","value":"listing"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const FarmerSiloBalancesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FarmerSiloBalances"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"account"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"season"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"farmer"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"deposited"},"name":{"kind":"Name","value":"deposits"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"depositedAmount_gt"},"value":{"kind":"IntValue","value":"0"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"stem"}},{"kind":"Field","name":{"kind":"Name","value":"token"}},{"kind":"Field","name":{"kind":"Name","value":"depositedAmount"}},{"kind":"Field","name":{"kind":"Name","value":"depositedBDV"}}]}},{"kind":"Field","alias":{"kind":"Name","value":"withdrawn"},"name":{"kind":"Name","value":"withdraws"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"withdrawSeason"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"claimableSeason_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"season"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"claimed"},"value":{"kind":"BooleanValue","value":false}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"season"},"name":{"kind":"Name","value":"withdrawSeason"}},{"kind":"Field","name":{"kind":"Name","value":"token"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}}]}},{"kind":"Field","alias":{"kind":"Name","value":"claimable"},"name":{"kind":"Name","value":"withdraws"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"withdrawSeason"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"claimableSeason_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"season"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"claimed"},"value":{"kind":"BooleanValue","value":false}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"season"},"name":{"kind":"Name","value":"withdrawSeason"}},{"kind":"Field","name":{"kind":"Name","value":"token"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}}]}}]}}]}}]} as unknown as DocumentNode; +export const FieldIssuedSoilDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"fieldIssuedSoil"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"season"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"field_contains_nocase"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season"},"value":{"kind":"Variable","name":{"kind":"Name","value":"season"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"field_contains_nocase"},"value":{"kind":"Variable","name":{"kind":"Name","value":"field_contains_nocase"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"issuedSoil"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"soil"}}]}}]}}]} as unknown as DocumentNode; +export const FieldSnapshotsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FieldSnapshots"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Bytes"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"field_"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldId"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"blocksToSoldOutSoil"}},{"kind":"Field","name":{"kind":"Name","value":"caseId"}},{"kind":"Field","name":{"kind":"Name","value":"deltaHarvestablePods"}},{"kind":"Field","name":{"kind":"Name","value":"deltaHarvestedPods"}},{"kind":"Field","name":{"kind":"Name","value":"deltaIssuedSoil"}},{"kind":"Field","name":{"kind":"Name","value":"deltaNumberOfSowers"}},{"kind":"Field","name":{"kind":"Name","value":"deltaNumberOfSows"}},{"kind":"Field","name":{"kind":"Name","value":"deltaPodIndex"}},{"kind":"Field","name":{"kind":"Name","value":"deltaPodRate"}},{"kind":"Field","name":{"kind":"Name","value":"deltaRealRateOfReturn"}},{"kind":"Field","name":{"kind":"Name","value":"deltaSoil"}},{"kind":"Field","name":{"kind":"Name","value":"deltaSownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"deltaTemperature"}},{"kind":"Field","name":{"kind":"Name","value":"deltaUnharvestablePods"}},{"kind":"Field","name":{"kind":"Name","value":"harvestablePods"}},{"kind":"Field","name":{"kind":"Name","value":"harvestedPods"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"issuedSoil"}},{"kind":"Field","name":{"kind":"Name","value":"numberOfSowers"}},{"kind":"Field","name":{"kind":"Name","value":"numberOfSows"}},{"kind":"Field","name":{"kind":"Name","value":"podIndex"}},{"kind":"Field","name":{"kind":"Name","value":"podRate"}},{"kind":"Field","name":{"kind":"Name","value":"realRateOfReturn"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"seasonBlock"}},{"kind":"Field","name":{"kind":"Name","value":"soil"}},{"kind":"Field","name":{"kind":"Name","value":"soilSoldOut"}},{"kind":"Field","name":{"kind":"Name","value":"sownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"temperature"}},{"kind":"Field","name":{"kind":"Name","value":"unharvestablePods"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; +export const BeanstalkSeasonsTableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkSeasonsTable"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seasons"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sunriseBlock"}},{"kind":"Field","name":{"kind":"Name","value":"rewardBeans"}},{"kind":"Field","name":{"kind":"Name","value":"price"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBeans"}},{"kind":"Field","name":{"kind":"Name","value":"raining"}},{"kind":"Field","name":{"kind":"Name","value":"season"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fieldHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"field"},"value":{"kind":"StringValue","value":"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"caseId"}},{"kind":"Field","name":{"kind":"Name","value":"issuedSoil"}},{"kind":"Field","name":{"kind":"Name","value":"deltaSownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"sownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"deltaPodDemand"}},{"kind":"Field","name":{"kind":"Name","value":"blocksToSoldOutSoil"}},{"kind":"Field","name":{"kind":"Name","value":"podRate"}},{"kind":"Field","name":{"kind":"Name","value":"temperature"}},{"kind":"Field","name":{"kind":"Name","value":"deltaTemperature"}},{"kind":"Field","name":{"kind":"Name","value":"season"}}]}},{"kind":"Field","name":{"kind":"Name","value":"siloHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"silo"},"value":{"kind":"StringValue","value":"0xd1a0d188e861ed9d15773a2f3574a2e94134ba8f","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"beanToMaxLpGpPerBdvRatio"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBeanToMaxLpGpPerBdvRatio"}},{"kind":"Field","name":{"kind":"Name","value":"season"}}]}}]}}]} as unknown as DocumentNode; +export const SiloSnapshotsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SiloSnapshots"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Bytes"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"siloHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"silo_"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beanToMaxLpGpPerBdvRatio"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBeanMints"}},{"kind":"Field","name":{"kind":"Name","value":"season"}}]}}]}}]} as unknown as DocumentNode; +export const SiloYieldsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SiloYields"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"siloYields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"emaWindow"},"value":{"kind":"EnumValue","value":"ROLLING_30_DAY"}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beansPerSeasonEMA"}},{"kind":"Field","name":{"kind":"Name","value":"beta"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"u"}},{"kind":"Field","name":{"kind":"Name","value":"whitelistedTokens"}},{"kind":"Field","name":{"kind":"Name","value":"emaWindow"}},{"kind":"Field","name":{"kind":"Name","value":"tokenAPYS"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"beanAPY"}},{"kind":"Field","name":{"kind":"Name","value":"stalkAPY"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"token"}}]}}]}}]}}]} as unknown as DocumentNode; +export const AllMarketActivityDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"AllMarketActivity"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"1000"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"listings_createdAt_gt"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orders_createdAt_gt"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fill_createdAt_gt"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podListings"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"createdAt_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"listings_createdAt_gt"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"status_not"},"value":{"kind":"EnumValue","value":"FILLED_PARTIAL"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodListing"}}]}},{"kind":"Field","name":{"kind":"Name","value":"podOrders"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"createdAt"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"createdAt_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orders_createdAt_gt"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodOrder"}}]}},{"kind":"Field","name":{"kind":"Name","value":"podFills"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"createdAt_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fill_createdAt_gt"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodFill"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodListing"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodListing"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"mode"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxHarvestableIndex"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"originalIndex"}},{"kind":"Field","name":{"kind":"Name","value":"originalPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filled"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"remainingAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filledAmount"}},{"kind":"Field","name":{"kind":"Name","value":"fill"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodOrder"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodOrder"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}},{"kind":"Field","name":{"kind":"Name","value":"podAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodFill"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodFill"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"costInBeans"}},{"kind":"Field","name":{"kind":"Name","value":"fromFarmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toFarmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"listing"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"order"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode; +export const AllPodListingsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"AllPodListings"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"1000"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"status"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"MarketStatus"}},"defaultValue":{"kind":"EnumValue","value":"ACTIVE"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"maxHarvestableIndex"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"skip"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"0"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podListings"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"skip"},"value":{"kind":"Variable","name":{"kind":"Name","value":"skip"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"status"},"value":{"kind":"Variable","name":{"kind":"Name","value":"status"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"maxHarvestableIndex_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"maxHarvestableIndex"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"remainingAmount_gt"},"value":{"kind":"StringValue","value":"100000","block":false}}]}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"index"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodListing"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodListing"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodListing"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"mode"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxHarvestableIndex"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"originalIndex"}},{"kind":"Field","name":{"kind":"Name","value":"originalPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filled"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"remainingAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filledAmount"}},{"kind":"Field","name":{"kind":"Name","value":"fill"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}}]} as unknown as DocumentNode; +export const AllPodOrdersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"AllPodOrders"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"1000"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"status"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"MarketStatus"}},"defaultValue":{"kind":"EnumValue","value":"ACTIVE"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"skip"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"0"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podOrders"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"skip"},"value":{"kind":"Variable","name":{"kind":"Name","value":"skip"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"createdAt"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"status"},"value":{"kind":"Variable","name":{"kind":"Name","value":"status"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodOrder"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodOrder"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodOrder"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}},{"kind":"Field","name":{"kind":"Name","value":"podAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}}]} as unknown as DocumentNode; +export const FarmerMarketActivityDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FarmerMarketActivity"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"1000"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"account"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"listings_createdAt_gt"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orders_createdAt_gt"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fill_createdAt_gt"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BigInt"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podListings"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"farmer"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"createdAt_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"listings_createdAt_gt"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"status_not"},"value":{"kind":"EnumValue","value":"FILLED_PARTIAL"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodListing"}}]}},{"kind":"Field","name":{"kind":"Name","value":"podOrders"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"createdAt"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"farmer"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"createdAt_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orders_createdAt_gt"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodOrder"}}]}},{"kind":"Field","name":{"kind":"Name","value":"podFills"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"and"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"createdAt_gt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fill_createdAt_gt"}}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"or"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fromFarmer"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"toFarmer"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}}]}]}}]}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodFill"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodListing"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodListing"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"mode"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxHarvestableIndex"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"originalIndex"}},{"kind":"Field","name":{"kind":"Name","value":"originalPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filled"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"remainingAmount"}},{"kind":"Field","name":{"kind":"Name","value":"filledAmount"}},{"kind":"Field","name":{"kind":"Name","value":"fill"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodOrder"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodOrder"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"farmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"historyID"}},{"kind":"Field","name":{"kind":"Name","value":"pricingType"}},{"kind":"Field","name":{"kind":"Name","value":"pricePerPod"}},{"kind":"Field","name":{"kind":"Name","value":"pricingFunction"}},{"kind":"Field","name":{"kind":"Name","value":"maxPlaceInLine"}},{"kind":"Field","name":{"kind":"Name","value":"minFillAmount"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}},{"kind":"Field","name":{"kind":"Name","value":"podAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmountFilled"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"creationHash"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodFill"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodFill"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"placeInLine"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"index"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"costInBeans"}},{"kind":"Field","name":{"kind":"Name","value":"fromFarmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toFarmer"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"listing"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"originalAmount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"order"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"beanAmount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode; +export const FarmerSeasonalSiloDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FarmerSeasonalSilo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"account"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"siloHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"silo"},"value":{"kind":"Variable","name":{"kind":"Name","value":"account"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"plantedBeans"}},{"kind":"Field","name":{"kind":"Name","value":"stalk"}},{"kind":"Field","name":{"kind":"Name","value":"germinatingStalk"}},{"kind":"Field","name":{"kind":"Name","value":"depositedBDV"}}]}}]}}]} as unknown as DocumentNode; +export const FarmerSeasonalSiloAssetTokenDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FarmerSeasonalSiloAssetToken"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"siloAsset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"siloAssetHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"siloAsset"},"value":{"kind":"Variable","name":{"kind":"Name","value":"siloAsset"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"depositedAmount"}},{"kind":"Field","name":{"kind":"Name","value":"depositedBDV"}},{"kind":"Field","name":{"kind":"Name","value":"deltaDepositedBDV"}},{"kind":"Field","name":{"kind":"Name","value":"deltaDepositedAmount"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]} as unknown as DocumentNode; +export const BeanstalkSeasonalSiloActiveFarmersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkSeasonalSiloActiveFarmers"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"silo"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"siloHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"silo"},"value":{"kind":"Variable","name":{"kind":"Name","value":"silo"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"stalk_gt"},"value":{"kind":"IntValue","value":"0"}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"activeFarmers"}}]}}]}}]} as unknown as DocumentNode; +export const BeanstalkSeasonalFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkSeasonalField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"field"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"field"},"value":{"kind":"Variable","name":{"kind":"Name","value":"field"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"podRate"}},{"kind":"Field","name":{"kind":"Name","value":"temperature"}},{"kind":"Field","name":{"kind":"Name","value":"podIndex"}},{"kind":"Field","name":{"kind":"Name","value":"harvestableIndex"}},{"kind":"Field","name":{"kind":"Name","value":"sownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"harvestedPods"}},{"kind":"Field","name":{"kind":"Name","value":"cultivationFactor"}},{"kind":"Field","name":{"kind":"Name","value":"cultivationTemperature"}},{"kind":"Field","name":{"kind":"Name","value":"issuedSoil"}},{"kind":"Field","name":{"kind":"Name","value":"deltaSownBeans"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]} as unknown as DocumentNode; +export const SeasonalGaugesInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SeasonalGaugesInfo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"gaugesInfoHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"g2BonusStalkPerBdv"}},{"kind":"Field","name":{"kind":"Name","value":"g2MaxConvertCapacity"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]} as unknown as DocumentNode; +export const BeanstalkSeasonalMarketPerformanceDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkSeasonalMarketPerformance"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"marketPerformanceSeasonals"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"valid"},"value":{"kind":"BooleanValue","value":true}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"thisSeasonTokenUsdPrices"}},{"kind":"Field","name":{"kind":"Name","value":"usdChange"}},{"kind":"Field","name":{"kind":"Name","value":"percentChange"}},{"kind":"Field","name":{"kind":"Name","value":"totalUsdChange"}},{"kind":"Field","name":{"kind":"Name","value":"totalPercentChange"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeUsdChange"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativePercentChange"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeTotalUsdChange"}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeTotalPercentChange"}},{"kind":"Field","name":{"kind":"Name","value":"silo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"allWhitelistedTokens"}}]}}]}}]}}]} as unknown as DocumentNode; +export const SeasonalNewPintoSnapshotsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SeasonalNewPintoSnapshots"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seasons"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"desc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"deltaBeans"}},{"kind":"Field","name":{"kind":"Name","value":"rewardBeans"}},{"kind":"Field","name":{"kind":"Name","value":"floodSiloBeans"}},{"kind":"Field","name":{"kind":"Name","value":"floodFieldBeans"}},{"kind":"Field","name":{"kind":"Name","value":"incentiveBeans"}}]}}]}}]} as unknown as DocumentNode; +export const BeanstalkSeasonalSiloDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkSeasonalSilo"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"silo"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"siloHourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"silo"},"value":{"kind":"Variable","name":{"kind":"Name","value":"silo"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"stalk"}},{"kind":"Field","name":{"kind":"Name","value":"avgGrownStalkPerBdvPerSeason"}},{"kind":"Field","name":{"kind":"Name","value":"depositedBDV"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]} as unknown as DocumentNode; +export const BeanstalkSeasonalWrappedDepositErc20Document = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"BeanstalkSeasonalWrappedDepositERC20"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"from"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"to"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"wrappedDepositERC20HourlySnapshots"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"season_gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"from"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"season_lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"to"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"EnumValue","value":"season"}},{"kind":"Argument","name":{"kind":"Name","value":"orderDirection"},"value":{"kind":"EnumValue","value":"asc"}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"season"}},{"kind":"Field","name":{"kind":"Name","value":"supply"}},{"kind":"Field","name":{"kind":"Name","value":"redeemRate"}},{"kind":"Field","name":{"kind":"Name","value":"apy24h"}},{"kind":"Field","name":{"kind":"Name","value":"apy7d"}},{"kind":"Field","name":{"kind":"Name","value":"apy30d"}},{"kind":"Field","name":{"kind":"Name","value":"apy90d"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/src/generated/gql/pintostalk/index.ts b/src/generated/gql/pintostalk/index.ts new file mode 100644 index 000000000..af7839936 --- /dev/null +++ b/src/generated/gql/pintostalk/index.ts @@ -0,0 +1 @@ +export * from "./gql"; \ No newline at end of file diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 242306b60..d51f5e427 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -193,6 +193,14 @@ export function Market() { const podLineAsNumber = podLine.toNumber() / MILLION; const navHeight = useNavHeight(); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setTimeout(() => { + setMounted(true); + }, 3000); + }, []) + // Overlay state and chart ref const chartRef = useRef(null); const [overlayParams, setOverlayParams] = useState(null); @@ -429,6 +437,8 @@ export function Market() { const viewMode = mode || "buy"; const viewAction = id || (viewMode === "buy" ? "fill" : "create"); + console.log("Chart Ref", chartRef.current); + return ( <>
@@ -480,7 +490,9 @@ export function Market() {
- + ) + }
From 09ef544af7ee9976a4f6ceac9e9a7ef1a5d40aa9 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Fri, 12 Dec 2025 18:45:17 +0300 Subject: [PATCH 53/54] Remove overlay --- src/components/MarketChartOverlay.tsx | 730 --------------------- src/components/charts/ScatterChart.tsx | 75 ++- src/pages/Market.tsx | 54 +- src/pages/market/actions/CreateListing.tsx | 49 +- src/pages/market/actions/CreateOrder.tsx | 44 +- src/pages/market/actions/FillListing.tsx | 44 +- 6 files changed, 63 insertions(+), 933 deletions(-) delete mode 100644 src/components/MarketChartOverlay.tsx diff --git a/src/components/MarketChartOverlay.tsx b/src/components/MarketChartOverlay.tsx deleted file mode 100644 index f385162ee..000000000 --- a/src/components/MarketChartOverlay.tsx +++ /dev/null @@ -1,730 +0,0 @@ -import { TokenValue } from "@/classes/TokenValue"; -import { calculatePodScore } from "@/utils/podScore"; -import { buildPodScoreColorScaler } from "@/utils/podScoreColorScaler"; -import { Chart } from "chart.js"; -import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; - -// Performance constants - hoisted outside component -const MILLION = 1_000_000; -const RESIZE_DEBOUNCE_MS = 100; -const DIMENSION_UPDATE_DELAY_MS = 0; -const BOX_SIZE = 12; -const HALF_BOX_SIZE = 6; // Pre-calculated for performance -const BORDER_WIDTH = 1; - -// Frozen color constants for immutability and optimization -const BUY_OVERLAY_COLORS = Object.freeze({ - shadedRegion: "rgba(92, 184, 169, 0.15)", // Teal with 15% opacity - border: "rgba(92, 184, 169, 0.8)", // Teal with 80% opacity -}); - -const SELL_OVERLAY_COLORS = Object.freeze({ - plotBorder: "#ED7A00", - plotFill: "#e0b57d", - lineColor: "black", -}); - -// Tailwind class strings for reuse -const BASE_OVERLAY_CLASSES = "absolute pointer-events-none"; -const TRANSITION_CLASSES = "transition-all duration-150 ease-out"; -const LINE_TRANSITION_CLASSES = "transition-[top,opacity] duration-150 ease-out"; - -// Overlay parameter types -export interface PlotOverlayData { - startIndex: TokenValue; // Absolute pod index - amount: TokenValue; // Number of pods in this plot -} - -interface BuyOverlayParams { - mode: "buy"; - pricePerPod: number; - maxPlaceInLine: number; -} - -interface SellOverlayParams { - mode: "sell"; - pricePerPod: number; - plots: PlotOverlayData[]; -} - -export type OverlayParams = BuyOverlayParams | SellOverlayParams | null; - -interface MarketChartOverlayProps { - overlayParams: OverlayParams; - chartRef: React.RefObject; - visible: boolean; - harvestableIndex: TokenValue; - marketListingScores?: number[]; // Pod Scores from existing market listings for color scaling -} - -type ChartDimensions = { - left: number; - top: number; - width: number; - height: number; - bottom: number; - right: number; -}; - -interface PlotRectangle { - x: number; // Left edge pixel position - y: number; // Top edge pixel position (price line) - width: number; // Width in pixels (based on plot amount) - height: number; // Height in pixels (from price to bottom) -} - -const MarketChartOverlay = React.memo( - ({ overlayParams, chartRef, visible, harvestableIndex, marketListingScores = [] }) => { - const [dimensions, setDimensions] = useState(null); - const containerRef = useRef(null); - - useEffect(() => { - console.log("Dimensions", dimensions); - }, [dimensions]) - - // Note: Throttling removed to ensure immediate updates during price changes - // Performance is acceptable without throttling due to optimized calculations - const throttledOverlayParams = overlayParams; - - // Optimized pixel position calculator with minimal validation overhead - const calculatePixelPosition = useCallback( - (dataValue: number, axis: "x" | "y"): number | null => { - const chart = chartRef.current; - if (!chart?.scales) return null; - - console.log("Data Value", dataValue); - console.log("Axis", axis); - - const scale = chart.scales[axis]; - if (!scale?.getPixelForValue || scale.min === undefined || scale.max === undefined) { - return null; - } - - // Fast clamp without Math.max/min for better performance - const clampedValue = dataValue < scale.min ? scale.min : dataValue > scale.max ? scale.max : dataValue; - - try { - return scale.getPixelForValue(clampedValue); - } catch { - return null; - } - }, - [chartRef], - ); - - // Optimized dimension calculator with minimal object creation - const getChartDimensions = useCallback((): ChartDimensions | null => { - const chart = chartRef.current; - if (!chart?.chartArea) return null; - - const { left, top, right, bottom } = chart.chartArea; - - // Fast type validation - if ( - typeof left !== "number" || - typeof top !== "number" || - typeof right !== "number" || - typeof bottom !== "number" - ) { - return null; - } - - const width = right - left; - const height = bottom - top; - - if (width <= 0 || height <= 0) return null; - - return { left, top, width, height, bottom, right }; - }, [chartRef]); - - // Optimized resize handling with single debounced handler - // useEffect(() => { - // let timeoutId: NodeJS.Timeout; - // let retryTimeouts: NodeJS.Timeout[] = []; - // let animationFrameId: number | null = null; - // let resizeObserver: ResizeObserver | null = null; - // let isMounted = true; - - // // Check if chart is fully ready with all required properties - // const isChartReady = (): boolean => { - // const chart = chartRef.current; - // if (!chart) return false; - - // // Check canvas is in DOM (critical check to prevent ownerDocument errors) - // if (!chart.canvas || !chart.canvas.ownerDocument) return false; - - // // Check chartArea exists and has valid dimensions - // if (!chart.chartArea) return false; - // const { left, top, right, bottom } = chart.chartArea; - // if ( - // typeof left !== "number" || - // typeof top !== "number" || - // typeof right !== "number" || - // typeof bottom !== "number" || - // right - left <= 0 || - // bottom - top <= 0 - // ) { - // return false; - // } - - // // Check scales exist and are ready - // if (!chart.scales?.x || !chart.scales?.y) return false; - // const xScale = chart.scales.x; - // const yScale = chart.scales.y; - - // // Check scales have required methods and valid ranges - // if ( - // typeof xScale.getPixelForValue !== "function" || - // typeof yScale.getPixelForValue !== "function" || - // xScale.min === undefined || - // xScale.max === undefined || - // yScale.min === undefined || - // yScale.max === undefined - // ) { - // return false; - // } - - // return true; - // }; - - // const updateDimensions = () => { - // if (!isMounted) return; - - // const chart = chartRef.current; - - // // Ensure Chart.js resizes first before getting dimensions - // // Only resize if canvas is in DOM - // if (chart?.canvas?.ownerDocument && isChartReady()) { - // try { - // chart.resize(); - // } catch (error) { - // // If resize fails, chart might be detached, skip resize - // console.warn("Chart resize failed, canvas may be detached:", error); - // } - // } - - // // Use requestAnimationFrame to sync with browser's repaint cycle - // // Double RAF ensures Chart.js has finished resizing and updated chartArea - // if (animationFrameId !== null) { - // cancelAnimationFrame(animationFrameId); - // } - - // animationFrameId = requestAnimationFrame(() => { - // // Second RAF to ensure Chart.js has updated chartArea after resize - // requestAnimationFrame(() => { - // if (!isMounted) return; - - // // Try to get dimensions even if chart is not fully ready - // // This ensures overlay can render when chartArea is available - // const newDimensions = getChartDimensions(); - // if (newDimensions) { - // setDimensions(newDimensions); - // } - // animationFrameId = null; - // }); - // }); - // }; - - // const debouncedUpdate = () => { - // clearTimeout(timeoutId); - // timeoutId = setTimeout(updateDimensions, RESIZE_DEBOUNCE_MS); - // }; - - // // Aggressive retry mechanism for direct link navigation - // const tryUpdateDimensions = (attempt = 0, maxAttempts = 10) => { - // if (!isMounted) return; - - // if (isChartReady()) { - // const chart = chartRef.current; - // if (chart?.canvas?.ownerDocument) { - // // Only update if canvas is in DOM - // try { - // chart.update("none"); - // } catch (error) { - // // If update fails, chart might be detached, skip update - // console.warn("Chart update failed, canvas may be detached:", error); - // } - // } - - // // Use triple RAF to ensure chart is fully rendered - // requestAnimationFrame(() => { - // requestAnimationFrame(() => { - // requestAnimationFrame(() => { - // if (!isMounted) return; - // // Try to get dimensions even if chart is not fully ready - // // This ensures overlay can render when chartArea is available - // const newDimensions = getChartDimensions(); - // if (newDimensions) { - // setDimensions(newDimensions); - // } else if (attempt < maxAttempts) { - // // Retry if dimensions still not available - // const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), 50); - // retryTimeouts.push(timeout); - // } - // }); - // }); - // }); - // } else if (attempt < maxAttempts) { - // // Chart not ready, retry with exponential backoff - // const delay = Math.min(50 * 1.5 ** attempt, 500); - // const timeout = setTimeout(() => tryUpdateDimensions(attempt + 1, maxAttempts), delay); - // retryTimeouts.push(timeout); - // } - // }; - - // // Start initial update attempts - // tryUpdateDimensions(); - - // // Single ResizeObserver for all resize events - // if (typeof ResizeObserver !== "undefined") { - // resizeObserver = new ResizeObserver(debouncedUpdate); - // const parent = containerRef.current?.parentElement; - // if (parent) { - // resizeObserver.observe(parent); - // } - // // Also observe the chart canvas itself for more accurate updates - // const chart = chartRef.current; - // if (chart?.canvas) { - // resizeObserver.observe(chart.canvas); - // } - // } - - // // Fallback window resize listener with passive flag for better performance - // window.addEventListener("resize", debouncedUpdate, { passive: true }); - - // // Listen to chart update events (zoom/pan/scale changes) - // const chart = chartRef.current; - // if (chart) { - // // Listen to chart's update event to catch zoom/pan/scale changes - // const handleChartUpdate = () => { - // // Use RAF to ensure chart has finished updating - // requestAnimationFrame(() => { - // requestAnimationFrame(() => { - // updateDimensions(); - // }); - // }); - // }; - - // // Chart.js doesn't have built-in event system, so we'll use a polling approach - // // or listen to chart's internal update cycle - // // For now, we'll add a MutationObserver on the canvas to detect changes - // let lastScaleMin: { x: number | undefined; y: number | undefined } = { - // x: chart.scales?.x?.min, - // y: chart.scales?.y?.min, - // }; - // let lastScaleMax: { x: number | undefined; y: number | undefined } = { - // x: chart.scales?.x?.max, - // y: chart.scales?.y?.max, - // }; - - // // Poll for scale changes (zoom/pan) - Chart.js doesn't have built-in scale change events - // const scaleCheckInterval = setInterval(() => { - // if (!isMounted || !chartRef.current) { - // clearInterval(scaleCheckInterval); - // return; - // } - - // const currentChart = chartRef.current; - // if (!currentChart?.scales?.x || !currentChart?.scales?.y) return; - - // const currentXMin = currentChart.scales.x.min; - // const currentXMax = currentChart.scales.x.max; - // const currentYMin = currentChart.scales.y.min; - // const currentYMax = currentChart.scales.y.max; - - // // Check if scales have changed (zoom/pan) - // if ( - // currentXMin !== lastScaleMin.x || - // currentXMax !== lastScaleMax.x || - // currentYMin !== lastScaleMin.y || - // currentYMax !== lastScaleMax.y - // ) { - // lastScaleMin = { x: currentXMin, y: currentYMin }; - // lastScaleMax = { x: currentXMax, y: currentYMax }; - // handleChartUpdate(); - // } - // }, 200); // Check every 200ms for better performance - - // chart.resize(); - // // Force update after chart is ready - // updateDimensions(); - - // return () => { - // isMounted = false; - // clearInterval(scaleCheckInterval); - // clearTimeout(timeoutId); - // retryTimeouts.forEach(clearTimeout); - // retryTimeouts = []; - // if (animationFrameId !== null) { - // cancelAnimationFrame(animationFrameId); - // } - // resizeObserver?.disconnect(); - // window.removeEventListener("resize", debouncedUpdate); - // }; - // } else { - // return () => { - // isMounted = false; - // clearTimeout(timeoutId); - // retryTimeouts.forEach(clearTimeout); - // retryTimeouts = []; - // if (animationFrameId !== null) { - // cancelAnimationFrame(animationFrameId); - // } - // resizeObserver?.disconnect(); - // window.removeEventListener("resize", debouncedUpdate); - // }; - // } - // }, [getChartDimensions, chartRef]); - - // Update dimensions when overlay params or visibility changes - useEffect(() => { - if (visible && throttledOverlayParams) { - // Force immediate dimension update when overlay params change - // This ensures overlay position updates correctly when params change - const updateOnParamsChange = () => { - const chart = chartRef.current; - if (!chart?.chartArea) return; - - // Use RAF to ensure chart is ready - requestAnimationFrame(() => { - requestAnimationFrame(() => { - const newDimensions = getChartDimensions(); - if (newDimensions) { - // console.log("New Dimensions from update on params change: ", newDimensions); - setDimensions(newDimensions); - } - }); - }); - }; - - const tryUpdate = (attempt = 0, maxAttempts = 15) => { - const chart = chartRef.current; - - // Comprehensive chart readiness check - if ( - chart?.canvas?.ownerDocument && // Critical: canvas must be in DOM - chart?.chartArea && - chart.scales?.x && - chart.scales?.y && - typeof chart.chartArea.left === "number" && - typeof chart.chartArea.right === "number" && - typeof chart.chartArea.top === "number" && - typeof chart.chartArea.bottom === "number" && - chart.chartArea.right - chart.chartArea.left > 0 && - chart.chartArea.bottom - chart.chartArea.top > 0 && - typeof chart.scales.x.getPixelForValue === "function" && - typeof chart.scales.y.getPixelForValue === "function" && - chart.scales.x.min !== undefined && - chart.scales.x.max !== undefined && - chart.scales.y.min !== undefined && - chart.scales.y.max !== undefined - ) { - // Force chart update to ensure everything is synced - // Only update if canvas is in DOM - try { - chart.update("none"); - } catch (error) { - // If update fails, chart might be detached, but still try to get dimensions - console.warn("Chart update failed, canvas may be detached:", error); - } - - // Use triple RAF to ensure chart is fully rendered - // Continue with dimension update even if chart.update() failed - requestAnimationFrame(() => { - requestAnimationFrame(() => { - requestAnimationFrame(() => { - const newDimensions = getChartDimensions(); - // console.log("New Dimensions from try update: ", newDimensions); - if (newDimensions) { - setDimensions(newDimensions); - } - }); - }); - }); - } else if (attempt < maxAttempts) { - // Chart not ready, retry with exponential backoff - const delay = Math.min(50 * 1.3 ** attempt, 300); - setTimeout(() => tryUpdate(attempt + 1, maxAttempts), delay); - } - }; - - // Try immediate update first - updateOnParamsChange(); - // Also try comprehensive update - tryUpdate(); - } - }, [throttledOverlayParams, visible, getChartDimensions]); - - // Optimized buy overlay renderer with minimal validation - const renderBuyOverlay = useCallback( - (params: BuyOverlayParams) => { - const { pricePerPod, maxPlaceInLine } = params; - - // Fast early returns - if (!dimensions || !chartRef.current?.scales) return null; - - const { scales } = chartRef.current; - const { x: xScale, y: yScale } = scales; - - if (!xScale?.max || xScale.max === 0 || !yScale?.max) return null; - - // Optimized conversion and validation - const placeInLineChartX = maxPlaceInLine / MILLION; - if (placeInLineChartX < 0) return null; - - // Batch pixel position calculations - const priceY = calculatePixelPosition(pricePerPod, "y"); - const placeX = calculatePixelPosition(placeInLineChartX, "x"); - - if (priceY === null || placeX === null) return null; - - // Fast clamping with ternary operators - const { left, right, top, bottom } = dimensions; - const clampedPlaceX = placeX < left ? left : placeX > right ? right : placeX; - const clampedPriceY = priceY < top ? top : priceY > bottom ? bottom : priceY; - - // Calculate dimensions - const rectWidth = clampedPlaceX - left; - const rectHeight = bottom - clampedPriceY; - - // Single validation check - if (rectWidth <= 0 || rectHeight <= 0) return null; - - return ( - - - - ); - }, - [dimensions, calculatePixelPosition], - ); - - // Highly optimized plot rectangle calculator - const calculatePlotRectangle = useCallback( - (plot: PlotOverlayData, pricePerPod: number): PlotRectangle | null => { - // Early returns for performance - if (!dimensions || !chartRef.current?.scales || !plot.startIndex || !plot.amount) { - return null; - } - - const { scales } = chartRef.current; - const { x: xScale, y: yScale } = scales; - - if (!xScale?.max || !yScale?.max) return null; - - // Optimized place in line calculation - avoid intermediate TokenValue object - const placeInLineNum = plot.startIndex.toNumber() - harvestableIndex.toNumber(); - if (placeInLineNum < 0) return null; - - // Batch calculations for better performance - // Overlay should extend to the middle of the pod, not the end - const startX = placeInLineNum / MILLION; - const endX = (placeInLineNum + plot.amount.toNumber() / 2) / MILLION; - - // Fast validation - if (startX < 0 || endX <= startX) return null; - - // Batch pixel position calculations - const startPixelX = calculatePixelPosition(startX, "x"); - const endPixelX = calculatePixelPosition(endX, "x"); - const pricePixelY = calculatePixelPosition(pricePerPod, "y"); - - if (startPixelX === null || endPixelX === null || pricePixelY === null) { - return null; - } - - // Optimized clamping with ternary operators - const { left, right, top, bottom } = dimensions; - const clampedStartX = startPixelX < left ? left : startPixelX > right ? right : startPixelX; - const clampedEndX = endPixelX < left ? left : endPixelX > right ? right : endPixelX; - const clampedPriceY = pricePixelY < top ? top : pricePixelY > bottom ? bottom : pricePixelY; - - const width = clampedEndX - clampedStartX; - const height = bottom - clampedPriceY; - - // Single validation check - if (width <= 0 || height <= 0 || clampedStartX >= right || clampedEndX <= left) { - return null; - } - - return { x: clampedStartX, y: clampedPriceY, width, height }; - }, - [dimensions, calculatePixelPosition, harvestableIndex], - ); - - // Highly optimized rectangle memoization with minimal object creation - const memoizedRectangles = useMemo(() => { - if (!throttledOverlayParams || throttledOverlayParams.mode !== "sell" || !dimensions) return null; - - const { pricePerPod, plots } = throttledOverlayParams; - - // Fast validation - if (pricePerPod <= 0 || !plots?.length) return null; - - // Pre-allocate array for better performance - const rectangles: Array = []; - - // Use for loop for better performance than map/filter chain - for (let i = 0; i < plots.length; i++) { - const plot = plots[i]; - const rect = calculatePlotRectangle(plot, pricePerPod); - - if (rect) { - // Calculate place in line for Pod Score - const placeInLineNum = plot.startIndex.toNumber() - harvestableIndex.toNumber(); - // Use placeInLine in millions for consistent scaling with market listings - const podScore = calculatePodScore(pricePerPod, placeInLineNum / MILLION); - - rectangles.push({ - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height, - plotKey: plot.startIndex.toHuman(), - plotIndex: i, - podScore, - }); - } - } - - return rectangles.length > 0 ? rectangles : null; - }, [throttledOverlayParams, dimensions, calculatePlotRectangle, harvestableIndex]); - - // Highly optimized sell overlay renderer with pre-calculated values - const renderSellOverlay = useCallback( - (params: SellOverlayParams) => { - const { pricePerPod } = params; - - if (!dimensions || !memoizedRectangles) return null; - - // Calculate price line Y position - const pricePixelY = calculatePixelPosition(pricePerPod, "y"); - if (pricePixelY === null) return null; - - // Fast clamping - const { top, bottom, left } = dimensions; - const clampedPriceY = pricePixelY < top ? top : pricePixelY > bottom ? bottom : pricePixelY; - - // Pre-calculate common values to avoid repeated calculations - const lineWidth = dimensions.right - left; - const lineHeight = bottom - top; - const lastRectIndex = memoizedRectangles.length - 1; - - // Build color scaler from both market listings and overlay plot scores - // This ensures overlay colors are relative to existing market conditions - const plotScores = memoizedRectangles - .map((rect) => rect.podScore) - .filter((score): score is number => score !== undefined); - - // Combine market listing scores with overlay plot scores for consistent scaling - const allScores = [...marketListingScores, ...plotScores]; - - const colorScaler = buildPodScoreColorScaler(allScores); - - return ( - <> - {/* Horizontal price line */} -
- - {/* Selection boxes */} - {memoizedRectangles.map((rect) => { - const centerX = rect.x + (rect.width >> 1); // Bit shift for division by 2 - const centerY = clampedPriceY; - - // Get dynamic color based on Pod Score, fallback to default if undefined - const fillColor = - rect.podScore !== undefined ? colorScaler.toColor(rect.podScore) : SELL_OVERLAY_COLORS.plotFill; - - return ( -
- ); - })} - - {/* Vertical lines */} - {memoizedRectangles.length > 0 && ( - <> -
> 1), // Pod'un ortası - top, - height: lineHeight, - }} - /> -
> 1), // Pod'un ortası - top, - height: lineHeight, - }} - /> - - )} - - ); - }, - [dimensions, memoizedRectangles, calculatePixelPosition], - ); - - // Don't render if not visible or no overlay params - if (!visible || !throttledOverlayParams || !dimensions) { - return null; - } - - // Determine which overlay to render based on mode - let overlayContent: JSX.Element | null = null; - if (throttledOverlayParams.mode === "buy") { - overlayContent = renderBuyOverlay(throttledOverlayParams); - } else if (throttledOverlayParams.mode === "sell") { - overlayContent = renderSellOverlay(throttledOverlayParams); - } - - if (!overlayContent) { - return null; - } - - return ( -
- {overlayContent} -
- ); - }, -); - -MarketChartOverlay.displayName = "MarketChartOverlay"; - -export default MarketChartOverlay; diff --git a/src/components/charts/ScatterChart.tsx b/src/components/charts/ScatterChart.tsx index 2d619e090..261c45079 100644 --- a/src/components/charts/ScatterChart.tsx +++ b/src/components/charts/ScatterChart.tsx @@ -199,40 +199,67 @@ const ScatterChart = React.memo( [data], ); - const verticalLinePlugin: Plugin = useMemo( + const crosshairPlugin: Plugin = useMemo( () => ({ - id: "customVerticalLine", + id: "customCrosshair", afterDraw: (chart: Chart) => { const ctx = chart.ctx; - const activeIndex = activeIndexRef.current; - if (ctx) { - ctx.save(); + if (!ctx) return; + + ctx.save(); + + const drawCrosshair = (x: number, y: number, color: string = "black", lineWidth: number = 1.5) => { + ctx.strokeStyle = color; + ctx.lineWidth = lineWidth; ctx.setLineDash([4, 4]); - // Draw the vertical line for the active element (hovered point) - const activeElements = chart.getActiveElements(); - if (activeElements.length > 0) { - const activeElement = activeElements[0]; - const datasetIndex = activeElement.datasetIndex; - const index = activeElement.index; - const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; + // Draw vertical line + ctx.beginPath(); + ctx.moveTo(x, chart.chartArea.top); + ctx.lineTo(x, chart.chartArea.bottom); + ctx.stroke(); + // Draw horizontal line + ctx.beginPath(); + ctx.moveTo(chart.chartArea.left, y); + ctx.lineTo(chart.chartArea.right, y); + ctx.stroke(); + }; + + // Draw crosshair for selected point (if any) + const [selectedPointDatasetIndex, selectedPointIndex] = selectedPointRef.current || []; + if (selectedPointDatasetIndex !== undefined && selectedPointIndex !== undefined) { + const selectedDataPoint = chart.getDatasetMeta(selectedPointDatasetIndex).data[selectedPointIndex]; + if (selectedDataPoint) { + const { x, y } = selectedDataPoint.getProps(["x", "y"], true); + drawCrosshair(x, y, "#387F5C", 2); // Green color for selected point, thicker line + } + } + + // Draw crosshair for hovered point (if any and different from selected) + const activeElements = chart.getActiveElements(); + if (activeElements.length > 0) { + const activeElement = activeElements[0]; + const datasetIndex = activeElement.datasetIndex; + const index = activeElement.index; + + // Only draw hover crosshair if it's different from the selected point + const isDifferentFromSelected = + selectedPointDatasetIndex !== datasetIndex || selectedPointIndex !== index; + + if (isDifferentFromSelected) { + const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; if (dataPoint) { - const { x } = dataPoint.getProps(["x"], true); - ctx.beginPath(); - ctx.moveTo(x, chart.chartArea.top); - ctx.lineTo(x, chart.chartArea.bottom); - ctx.strokeStyle = "black"; - ctx.lineWidth = 1.5; - ctx.stroke(); + const { x, y } = dataPoint.getProps(["x", "y"], true); + drawCrosshair(x, y, "black", 1.5); // Black color for hovered point } } - - ctx.restore(); } + + ctx.restore(); }, }), - [], + [selectedPointRef.current], ); const horizontalReferenceLinePlugin: Plugin = useMemo( @@ -471,8 +498,8 @@ const ScatterChart = React.memo( }, [data, yTickMin, yTickMax, valueFormatter, useLogarithmicScale, customValueTransform]); const allPlugins = useMemo( - () => [verticalLinePlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], - [verticalLinePlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], + () => [crosshairPlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], + [crosshairPlugin, horizontalReferenceLinePlugin, selectionPointPlugin, selectionCallbackPlugin], ); const chartDimensions = useMemo(() => { diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index d51f5e427..6ff918cf6 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -3,7 +3,7 @@ import PintoIcon from "@/assets/tokens/PINTO.png"; import { TokenValue } from "@/classes/TokenValue"; import { Col } from "@/components/Container"; import FrameAnimator from "@/components/LoadingSpinner"; -import MarketChartOverlay, { type OverlayParams } from "@/components/MarketChartOverlay"; + import PodLineGraph from "@/components/PodLineGraph"; import PodScoreGradientLegend from "@/components/PodScoreGradientLegend"; import ReadMoreAccordion from "@/components/ReadMoreAccordion"; @@ -199,37 +199,16 @@ export function Market() { setTimeout(() => { setMounted(true); }, 3000); - }, []) + }, []); - // Overlay state and chart ref + // Chart ref const chartRef = useRef(null); - const [overlayParams, setOverlayParams] = useState(null); - - // Memoized callback to update overlay params - const handleOverlayParamsChange = useCallback((params: OverlayParams) => { - setOverlayParams(params); - }, []); const scatterChartData: MarketScatterChartData[] = useMemo( () => shapeScatterChartData(data || [], harvestableIndex), [data, harvestableIndex], ); - // Extract Pod Scores from market listings for overlay color scaling - const marketListingScores = useMemo(() => { - if (!scatterChartData || scatterChartData.length < 2) return []; - - // Listings are at index 1 in scatterChartData - const listingsData = scatterChartData[1]; - if (!listingsData?.data) return []; - - const scores = listingsData.data - .map((point) => point.podScore) - .filter((score): score is number => score !== undefined); - - return scores; - }, [scatterChartData]); - // Calculate chart x-axis max value - use podLineAsNumber with a minimum value // Don't depend on overlayParams to avoid re-rendering chart on every slider change const chartXMax = useMemo(() => { @@ -489,21 +468,6 @@ export function Market() {
- - { - mounted && ( - - ) - }
@@ -535,15 +499,9 @@ export function Market() {
- {viewMode === "buy" && viewAction === "create" && ( - - )} - {viewMode === "buy" && viewAction === "fill" && ( - - )} - {viewMode === "sell" && viewAction === "create" && ( - - )} + {viewMode === "buy" && viewAction === "create" && } + {viewMode === "buy" && viewAction === "fill" && } + {viewMode === "sell" && viewAction === "create" && } {viewMode === "sell" && viewAction === "fill" && }
diff --git a/src/pages/market/actions/CreateListing.tsx b/src/pages/market/actions/CreateListing.tsx index 3f377e226..ba90e3624 100644 --- a/src/pages/market/actions/CreateListing.tsx +++ b/src/pages/market/actions/CreateListing.tsx @@ -1,7 +1,7 @@ import settingsIcon from "@/assets/misc/Settings.svg"; import pintoIcon from "@/assets/tokens/PINTO.png"; import { TV, TokenValue } from "@/classes/TokenValue"; -import type { OverlayParams, PlotOverlayData } from "@/components/MarketChartOverlay"; + import PodLineGraph from "@/components/PodLineGraph"; import SmartSubmitButton from "@/components/SmartSubmitButton"; import { Button } from "@/components/ui/Button"; @@ -69,11 +69,7 @@ const removeTrailingZeros = (value: string): string => { return value.includes(".") ? value.replace(/\.?0+$/, "") : value; }; -interface CreateListingProps { - onOverlayParamsChange?: (params: OverlayParams) => void; -} - -export default function CreateListing({ onOverlayParamsChange }: CreateListingProps) { +export default function CreateListing() { const { address: account } = useAccount(); const diamondAddress = useProtocolAddress(); const mainToken = useTokenData().mainToken; @@ -481,47 +477,6 @@ export default function CreateListing({ onOverlayParamsChange }: CreateListingPr writeWithEstimateGas, ]); - // Throttle overlay parameter updates for better performance - const overlayUpdateTimerRef = useRef(null); - - useEffect(() => { - // Clear any pending update - if (overlayUpdateTimerRef.current) { - clearTimeout(overlayUpdateTimerRef.current); - } - - // Throttle overlay updates to avoid performance issues during slider drag - overlayUpdateTimerRef.current = setTimeout(() => { - if (listingData.length > 0 && pricePerPod > 0) { - const plotOverlayData: PlotOverlayData[] = listingData.map((data) => ({ - startIndex: data.index, - amount: data.amount, - })); - - onOverlayParamsChange?.({ - mode: "sell", - pricePerPod, - plots: plotOverlayData, - }); - } else { - onOverlayParamsChange?.(null); - } - }, 16); // ~60fps (16ms) - - return () => { - if (overlayUpdateTimerRef.current) { - clearTimeout(overlayUpdateTimerRef.current); - } - }; - }, [listingData, pricePerPod, onOverlayParamsChange]); - - // Cleanup on unmount - useEffect(() => { - return () => { - onOverlayParamsChange?.(null); - }; - }, [onOverlayParamsChange]); - // ui state const disabled = !pricePerPod || !amount || !account || plot.length === 0 || selectedExpiresIn <= 0; diff --git a/src/pages/market/actions/CreateOrder.tsx b/src/pages/market/actions/CreateOrder.tsx index 383d38819..ba7c4ee67 100644 --- a/src/pages/market/actions/CreateOrder.tsx +++ b/src/pages/market/actions/CreateOrder.tsx @@ -2,7 +2,7 @@ import podIcon from "@/assets/protocol/Pod.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; -import type { OverlayParams } from "@/components/MarketChartOverlay"; + import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SlippageButton from "@/components/SlippageButton"; @@ -86,11 +86,7 @@ const useFilterTokens = () => { }, [tokens, isWSOL]); }; -interface CreateOrderProps { - onOverlayParamsChange?: (params: OverlayParams) => void; -} - -export default function CreateOrder({ onOverlayParamsChange }: CreateOrderProps = {}) { +export default function CreateOrder() { const diamondAddress = useProtocolAddress(); const mainToken = useTokenData().mainToken; const { queryKeys: balanceQKs } = useFarmerBalances(); @@ -174,42 +170,6 @@ export default function CreateOrder({ onOverlayParamsChange }: CreateOrderProps } }, [preferredToken, preferredLoading, didSetPreferred]); - // Throttle overlay parameter updates for better performance - const overlayUpdateTimerRef = useRef(null); - - useEffect(() => { - // Clear any pending update - if (overlayUpdateTimerRef.current) { - clearTimeout(overlayUpdateTimerRef.current); - } - - // Throttle overlay updates to avoid performance issues during slider drag - overlayUpdateTimerRef.current = setTimeout(() => { - if (maxPlaceInLine && maxPlaceInLine > 0 && pricePerPod > 0) { - onOverlayParamsChange?.({ - mode: "buy", - pricePerPod, - maxPlaceInLine, - }); - } else { - onOverlayParamsChange?.(null); - } - }, 16); // ~60fps (16ms) - - return () => { - if (overlayUpdateTimerRef.current) { - clearTimeout(overlayUpdateTimerRef.current); - } - }; - }, [pricePerPod, maxPlaceInLine, onOverlayParamsChange]); - - // Cleanup overlay on unmount - useEffect(() => { - return () => { - onOverlayParamsChange?.(null); - }; - }, [onOverlayParamsChange]); - // Token selection handler with tracking const handleTokenSelection = useCallback( (newToken: Token) => { diff --git a/src/pages/market/actions/FillListing.tsx b/src/pages/market/actions/FillListing.tsx index d3fa61534..ba7d99af7 100644 --- a/src/pages/market/actions/FillListing.tsx +++ b/src/pages/market/actions/FillListing.tsx @@ -2,7 +2,7 @@ import podIcon from "@/assets/protocol/Pod.png"; import { TV, TokenValue } from "@/classes/TokenValue"; import { ComboInputField } from "@/components/ComboInputField"; import FrameAnimator from "@/components/LoadingSpinner"; -import type { OverlayParams } from "@/components/MarketChartOverlay"; + import PodLineGraph from "@/components/PodLineGraph"; import RoutingAndSlippageInfo, { useRoutingAndSlippageWarning } from "@/components/RoutingAndSlippageInfo"; import SlippageButton from "@/components/SlippageButton"; @@ -110,11 +110,7 @@ const useFilterTokens = () => { }, [tokens, isWSOL]); }; -interface FillListingProps { - onOverlayParamsChange?: (params: OverlayParams) => void; -} - -export default function FillListing({ onOverlayParamsChange }: FillListingProps = {}) { +export default function FillListing() { const mainToken = useTokenData().mainToken; const diamondAddress = useProtocolAddress(); const account = useAccount(); @@ -264,42 +260,6 @@ export default function FillListing({ onOverlayParamsChange }: FillListingProps setHasInitializedPlace(true); // Mark as initialized to prevent default value override }, [listingId, allListings, maxPlace, mainToken.decimals, harvestableIndex, placeInLineFromUrl]); - // Update overlay parameters when maxPricePerPod or maxPlaceInLine changes - const overlayUpdateTimerRef = useRef(null); - - useEffect(() => { - // Clear any pending update - if (overlayUpdateTimerRef.current) { - clearTimeout(overlayUpdateTimerRef.current); - } - - // Throttle overlay updates to avoid performance issues during slider drag - overlayUpdateTimerRef.current = setTimeout(() => { - if (maxPlaceInLine && maxPlaceInLine > 0 && maxPricePerPod) { - onOverlayParamsChange?.({ - pricePerPod: maxPricePerPod, - maxPlaceInLine, - mode: "buy", - }); - } else { - onOverlayParamsChange?.(null); - } - }, 16); // ~60fps (16ms) - - return () => { - if (overlayUpdateTimerRef.current) { - clearTimeout(overlayUpdateTimerRef.current); - } - }; - }, [maxPricePerPod, maxPlaceInLine, onOverlayParamsChange]); - - // Cleanup overlay on unmount - useEffect(() => { - return () => { - onOverlayParamsChange?.(null); - }; - }, [onOverlayParamsChange]); - // Token selection handler with tracking const handleTokenSelection = useCallback( (newToken: Token) => { From aee9b3c258282e19c5a9d22cb4a46bc68aa837a8 Mon Sep 17 00:00:00 2001 From: feyyazcigim Date: Mon, 15 Dec 2025 13:19:50 +0300 Subject: [PATCH 54/54] Fix Pod Line Graph title on Market page and remove plot selected crosshair --- src/components/PodLineGraph.tsx | 15 +++++++++++--- src/components/charts/ScatterChart.tsx | 28 ++++++-------------------- src/pages/Market.tsx | 2 +- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/src/components/PodLineGraph.tsx b/src/components/PodLineGraph.tsx index 55a8da69c..beb7a23a2 100644 --- a/src/components/PodLineGraph.tsx +++ b/src/components/PodLineGraph.tsx @@ -51,6 +51,8 @@ interface PodLineGraphProps { className?: string; /** Optional: custom label text (default: "My Pods In Line") */ label?: string; + /** Optional: specify label type */ + labelType?: "title" | "label"; } /** @@ -188,6 +190,7 @@ export default function PodLineGraph({ disableInteractions = false, className, label = "My Pods In Line", + labelType = "label", }: PodLineGraphProps) { const farmerField = useFarmerField(); const harvestableIndex = useHarvestableIndex(); @@ -281,9 +284,15 @@ export default function PodLineGraph({ return (
{/* Label */} -
-

{label}

-
+ {labelType === "title" ? ( +
+

{label}

+
+ ) : ( +
+

{label}

+
+ )} {/* Plot container with border */}
diff --git a/src/components/charts/ScatterChart.tsx b/src/components/charts/ScatterChart.tsx index 261c45079..e1524c4f6 100644 --- a/src/components/charts/ScatterChart.tsx +++ b/src/components/charts/ScatterChart.tsx @@ -226,40 +226,24 @@ const ScatterChart = React.memo( ctx.stroke(); }; - // Draw crosshair for selected point (if any) - const [selectedPointDatasetIndex, selectedPointIndex] = selectedPointRef.current || []; - if (selectedPointDatasetIndex !== undefined && selectedPointIndex !== undefined) { - const selectedDataPoint = chart.getDatasetMeta(selectedPointDatasetIndex).data[selectedPointIndex]; - if (selectedDataPoint) { - const { x, y } = selectedDataPoint.getProps(["x", "y"], true); - drawCrosshair(x, y, "#387F5C", 2); // Green color for selected point, thicker line - } - } - - // Draw crosshair for hovered point (if any and different from selected) + // Only draw crosshair for hovered point (removed selected point crosshair) const activeElements = chart.getActiveElements(); if (activeElements.length > 0) { const activeElement = activeElements[0]; const datasetIndex = activeElement.datasetIndex; const index = activeElement.index; - // Only draw hover crosshair if it's different from the selected point - const isDifferentFromSelected = - selectedPointDatasetIndex !== datasetIndex || selectedPointIndex !== index; - - if (isDifferentFromSelected) { - const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; - if (dataPoint) { - const { x, y } = dataPoint.getProps(["x", "y"], true); - drawCrosshair(x, y, "black", 1.5); // Black color for hovered point - } + const dataPoint = chart.getDatasetMeta(datasetIndex).data[index]; + if (dataPoint) { + const { x, y } = dataPoint.getProps(["x", "y"], true); + drawCrosshair(x, y, "black", 1.5); // Black color for hovered point } } ctx.restore(); }, }), - [selectedPointRef.current], + [], ); const horizontalReferenceLinePlugin: Plugin = useMemo( diff --git a/src/pages/Market.tsx b/src/pages/Market.tsx index 6ff918cf6..a3fe10ce6 100644 --- a/src/pages/Market.tsx +++ b/src/pages/Market.tsx @@ -470,7 +470,7 @@ export function Market() {
- +
{TABLE_SLUGS.map((s, idx) => (