fTokenPermit2Deposits
Inherits:fTokenActions
implements fTokens support for deposit / mint via Permit2 signature.
Functions
depositWithSignature
deposit assets_
amount with Permit2 signature for underlying asset approval.
reverts with fToken__MinAmountOut()
if minAmountOut_
of shares is not reached.
assets_
must at least be minDeposit()
amount; reverts otherwise.
function depositWithSignature(
uint256 assets_,
address receiver_,
uint256 minAmountOut_,
IAllowanceTransfer.PermitSingle calldata permit_,
bytes calldata signature_
) external nonReentrant returns (uint256 shares_);
Parameters
Name | Type | Description |
---|---|---|
assets_ | uint256 | amount of assets to deposit |
receiver_ | address | receiver of minted fToken shares |
minAmountOut_ | uint256 | minimum accepted amount of shares minted |
permit_ | IAllowanceTransfer.PermitSingle | Permit2 permit message |
signature_ | bytes | packed signature of signing the EIP712 hash of permit_ |
Returns
Name | Type | Description |
---|---|---|
shares_ | uint256 | amount of minted shares |
mintWithSignature
mint amount of shares_
with Permit2 signature for underlying asset approval.
Signature should approve a little bit more than expected assets amount (previewMint()
) to avoid reverts.
shares_
must at least be minMint()
amount; reverts otherwise.
Note there might be tiny inaccuracies between requested shares_
and actually received shares amount.
Recommended to use deposit()
over mint because it is more gas efficient and less likely to revert.
function mintWithSignature(
uint256 shares_,
address receiver_,
uint256 maxAssets_,
IAllowanceTransfer.PermitSingle calldata permit_,
bytes calldata signature_
) external nonReentrant returns (uint256 assets_);
Parameters
Name | Type | Description |
---|---|---|
shares_ | uint256 | amount of shares to mint |
receiver_ | address | receiver of minted fToken shares |
maxAssets_ | uint256 | maximum accepted amount of assets used as input to mint shares_ |
permit_ | IAllowanceTransfer.PermitSingle | Permit2 permit message |
signature_ | bytes | packed signature of signing the EIP712 hash of permit_ |
Returns
Name | Type | Description |
---|---|---|
assets_ | uint256 | deposited assets amount |