Beanstalk
  • Agronomics Handbook
  • Farmers' Almanac
  • Whitepaper
  • Contract Addresses
  • 🌱Overview
    • Introduction
    • Development Ethos
    • EIP-2535 Diamond
    • App Storage
    • Internal Balances
  • 🌾Protocol
    • Overview
    • Louper
    • Sun
      • Season Facet
    • Silo
      • Silo Facet
      • BDV Facet
      • Whitelist Facet
      • Convert Facet
      • Convert Getters Facet
      • Enroot Facet
      • Approval Facet
      • Metadata Facet
      • Migration Facet
      • Legacy Claim Withdrawal Facet
    • Field
      • Field Facet
      • Fundraiser Facet
    • Barn
      • Fertilizer Facet
      • Unripe Facet
    • Market
      • Marketplace Facet
    • Farm
      • Farm Facet
      • Depot Facet
      • Token Facet
      • Token Support Facet
      • Curve Facet
    • Diamond
      • Diamond Cut Facet
      • Diamond Loupe Facet
      • Ownership Facet
      • Pause Facet
  • 📜Misc.
    • Technical Recordings
    • Upgrade History
    • FAQ
    • Terminology Discrepancies
Powered by GitBook
On this page
  • Call Functions
  • Mow and Migrate
  • Mow and Migrate No Deposits
  • View Functions
  • Balance Of Legacy Seeds
  • Balance Of Grown Stalk up to Stems Deployment
  • Get Deposit Legacy
  • Events
Edit on GitHub
Export as PDF
  1. Protocol
  2. Silo

Migration Facet

PreviousMetadata FacetNextLegacy Claim Withdrawal Facet

Last updated 6 months ago

Note that this page has not been updated to reflect the current state of Beanstalk, but is left here as a reference.

The Migration Facet contains functions related to . Farmers are required to migrate to the new accounting system created by the Silo V3 upgrade.

Call Functions

function mowAndMigrate(
    address account, 
    address[] calldata tokens, 
    uint32[][] calldata seasons,
    uint256[][] calldata amounts,
    uint256 stalkDiff,
    uint256 seedsDiff,
    bytes32[] calldata proof
) external payable;

Migrates a Farmer's Deposits from the old (Seasons based) to the new Silo (Stems based) accounting system.

When migrating an account, a user must submit all of the account's Deposits or the migration will not pass because the Seed check will fail. The Seed check adds up the BDV of all submitted Deposits, multiplies by the corresponding Seed amount for each token type, then compares that to the total Seeds stored for that user. If everything matches, the migration is valid.

Parameter
Type
Description

account

address

Address of the account to migrate.

tokens

address[]

Array of whitelisted token addresses to migrate.

seasons

uint256[][]

The Seasons for the Deposits.

amounts

uint256[][]

The amounts of those Deposits which are to be migrated.

stalkDiff

uint256

Discrepancy between the calculated Stalk and the actual Stalk the account has.

seedsDiff

uint256

Discrepancy between the calculated Seeds and the actual Seeds the account has.

proof

bytes32[]

The Merkle proof that confirms stalkDiff and seedsDiff.

function mowAndMigrateNoDeposits(address account) external payable;

Migrate an account to Silo V3 that has no Deposits.

Parameter
Type
Description

account

address

Address of the account to migrate.

View Functions

function balanceOfLegacySeeds(address account) external view returns (uint256);

Gets balance of Seeds for a Farmer that hasn't migrated.

Parameter
Type
Description

account

address

A Farmer's address.

Return Value
Description

uint256

Balance of Seeds for an unmigrated Farmer.

function balanceOfGrownStalkUpToStemsDeployment(address account)
    external
    view
    returns (uint256);

Gets a Farmer's balance of Grown Stalk at the time of Stems deployment (Silo V3 upgrade).

Parameter
Type
Description

account

address

Address of Farmer.

Return Value
Description

uint256

Grown Stalk balance for account at the time of Stems deployment.

function getDepositLegacy(
    address account,
    address token,
    uint32 season
) external view returns (uint128, uint128);

Locate the token amount and BDV for a Farmer's Deposit in legacy storage.

Parameter
Type
Description

account

address

Address of Farmer.

token

address

Whitelisted token address to get Deposit for.

season

uint32

Season of the Deposit in legacy storage.

Return Value
Description

uint128

Amount of token of the Deposit in legacy storage.

uint128

BDV of the Deposit in legacy storage.

Events

None.

🌾
Silo V3
Mow and Migrate
Mow and Migrate No Deposits
Balance Of Legacy Seeds
Balance Of Grown Stalk up to Stems Deployment
Get Deposit Legacy