For the complete documentation index, see llms.txt. This page is also available as Markdown.

Approval Facet

The Approval Facet handles all approval and permit related functions for the Silo.

Call Functions

Approvals

Approve Deposit

function approveDeposit(
    address spender,
    address token,
    uint256 amount
) external payable nonReentrant;

Approves an address to access a Farmer's Deposit.

Parameter
Type
Description

spender

address

Address to be given approval.

token

address

Address of ERC20.

amount

uint256

Amount to be approved.

Increase Deposit Allowance

function increaseDepositAllowance(
    address spender, 
    address token, 
    uint256 addedValue
) public virtual nonReentrant returns (bool);

Increases transfer allowance of a Deposit.

Parameter
Type
Description

spender

address

Address to increase approval for.

token

address

Address of ERC20.

addedValue

uint256

Additional approval value to be given.

Return Value
Description

bool

If the allowance increase was successful.

Decrease Deposit Allowance

Decreases transfer allowance of a Deposit.

Parameter
Type
Description

spender

address

Address to decrease approval for.

token

address

Address of ERC20.

subtractedValue

uint256

Amount of approval value to be removed.

Return Value
Description

bool

Success.

Permits

Farm balances and Silo Deposits support EIP-2612 permits, which allows Farmers to delegate use of their Farm balances and Silo Deposits through permits without the need for a separate transaction.

Permit Deposits

Permits multiple Deposits.

Parameter
Type
Description

owner

address

Owner of the Deposit.

spender

address

Address to permit.

tokens

address[]

Array of ERC20s to permit.

values

uint256[]

Array of amount (corresponding to tokens) to permit.

deadline

uint256

Expiration of signature (Unix time).

v

uint8

Recovery ID.

r

bytes32

ECDSA signature output.

s

bytes32

ECDSA signature output.

Permit Deposit

Permits a single Deposit.

Parameter
Type
Description

owner

address

Owner of the Deposit.

spender

address

Address to permit.

token

address

ERC20 to permit.

value

uint256

Amount of token to permit.

deadline

uint256

Expiration of signature (Unix time).

v

uint8

Recovery ID.

r

bytes32

ECDSA signature output.

s

bytes32

ECDSA signature output.

Set Approval for All

Set ERC-1155 approvals. Grants or revokes permission to operator to transfer the caller’s tokens, according to approved.

Parameter
Type
Description

spender

address

Address to approve spending for.

approved

bool

Whether or not to approve.

View Functions

Deposit Permit Nonces

Returns the current nonce for Deposit permits.

Parameter
Type
Description

owner

address

Owner of the Deposit.

Return Value
Description

uint256

Current nonce for Deposit permits.

Deposit Permit Domain Separator

Returns the domain separator for the current chain (link).

Return Value
Description

bytes32

The domain separator for the current chain.

Deposit Allowance

Returns how much of a token Deposit that spender can transfer on behalf of owner.

Parameter
Type
Description

owner

address

Owner of the Deposit.

spender

address

The address that can spend the Deposit.

token

address

The token Deposit that spender can transfer.

Return Value
Description

uint256

The token Deposit amount that spender can transfer on behalf of owner.

Is Approved for All

Returns true if _operator is approved to transfer _owner's Deposit.

Parameter
Type
Description

_owner

address

Owner of the Deposit.

_operator

address

Spender of the Deposit.

Return Value
Description

bool

True if _operator is approved to transfer _owner's tokens.

Events

Deposit Approval

Emitted when a Deposit is approved to spend by another account.

Parameter
Type
Description

owner

address

Owner of the Deposit.

spender

address

Spender of the Deposit.

token

address

Deposit token that can be spent.

amount

uint256

Amount of the Deposit token that can be spent.

Approval for All

Emitted when account grants or revokes permission to operator to transfer their tokens, according to approved (link).

Parameter
Type
Description

account

address

Owner of the Deposit.

operator

address

Spender of the Deposit.

approved

address

Whether or not the Deposit was approved.

Last updated