Approval Facet
Note that this page has not been updated to reflect the current state of Beanstalk, but is left here as a reference.
The Approval Facet handles all approval and permit related functions for the Silo.
Call Functions
Approvals
function approveDeposit(
address spender,
address token,
uint256 amount
) external payable nonReentrant;
Approves an address to access a Farmer's Deposit.
spender
address
Address to be given approval.
token
address
Address of ERC20.
amount
uint256
Amount to be approved.
function increaseDepositAllowance(
address spender,
address token,
uint256 addedValue
) public virtual nonReentrant returns (bool);
Increases transfer allowance of a Deposit.
spender
address
Address to increase approval for.
token
address
Address of ERC20.
addedValue
uint256
Additional approval value to be given.
bool
If the allowance increase was successful.
function decreaseDepositAllowance(
address spender,
address token,
uint256 subtractedValue
) public virtual nonReentrant returns (bool);
Decreases transfer allowance of a Deposit.
spender
address
Address to decrease approval for.
token
address
Address of ERC20.
subtractedValue
uint256
Amount of approval value to be removed.
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.
function permitDeposits(
address owner,
address spender,
address[] calldata tokens,
uint256[] calldata values,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external payable nonReentrant;
Permits multiple Deposits.
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.
function permitDeposit(
address owner,
address spender,
address token,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external payable nonReentrant;
Permits a single Deposit.
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.
function setApprovalForAll(
address spender,
bool approved
) external;
Set ERC-1155 approvals. Grants or revokes permission to operator
to transfer the caller’s tokens, according to approved
.
spender
address
Address to approve spending for.
approved
bool
Whether or not to approve.
View Functions
function depositPermitNonces(address owner) public view virtual returns (uint256);
Returns the current nonce for Deposit permits.
owner
address
Owner of the Deposit.
uint256
Current nonce for Deposit permits.
function depositPermitDomainSeparator() external view returns (bytes32);
Returns the domain separator for the current chain (link).
bytes32
The domain separator for the current chain.
function depositAllowance(
address owner,
address spender,
address token
) public view virtual returns (uint256);
Returns how much of a token
Deposit that spender
can transfer on behalf of owner
.
owner
address
Owner of the Deposit.
spender
address
The address that can spend the Deposit.
token
address
The token Deposit that spender
can transfer.
uint256
The token
Deposit amount that spender
can transfer on behalf of owner
.
function isApprovedForAll(
address _owner,
address _operator
) external view returns (bool);
Returns true if _operator
is approved to transfer _owner
's Deposit.
_owner
address
Owner of the Deposit.
_operator
address
Spender of the Deposit.
bool
True if _operator
is approved to transfer _owner
's tokens.
Events
event DepositApproval(
address indexed owner,
address indexed spender,
address token,
uint256 amount
);
Emitted when a Deposit is approved to spend by another account.
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.
event ApprovalForAll(address indexed account, address indexed operator, bool approved);
Emitted when account
grants or revokes permission to operator
to transfer their tokens, according to approved
(link).
account
address
Owner of the Deposit.
operator
address
Spender of the Deposit.
approved
address
Whether or not the Deposit was approved.
Last updated