Expand description
Generated by the following Solidity interface…
interface IStrategy {
error BalanceExceedsMaxTotalDeposits();
error MaxPerDepositExceedsMax();
error NewSharesZero();
error OnlyStrategyManager();
error OnlyUnderlyingToken();
error TotalSharesExceedsMax();
error WithdrawalAmountExceedsTotalDeposits();
event ExchangeRateEmitted(uint256 rate);
event StrategyTokenSet(address token, uint8 decimals);
function deposit(address token, uint256 amount) external returns (uint256);
function explanation() external view returns (string memory);
function shares(address user) external view returns (uint256);
function sharesToUnderlying(uint256 amountShares) external returns (uint256);
function sharesToUnderlyingView(uint256 amountShares) external view returns (uint256);
function totalShares() external view returns (uint256);
function underlyingToShares(uint256 amountUnderlying) external returns (uint256);
function underlyingToSharesView(uint256 amountUnderlying) external view returns (uint256);
function underlyingToken() external view returns (address);
function userUnderlying(address user) external returns (uint256);
function userUnderlyingView(address user) external view returns (uint256);
function version() external view returns (string memory);
function withdraw(address recipient, address token, uint256 amountShares) external;
}…which was generated by the following JSON ABI:
[
{
"type": "function",
"name": "deposit",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "contract IERC20"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "explanation",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "shares",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "sharesToUnderlying",
"inputs": [
{
"name": "amountShares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "sharesToUnderlyingView",
"inputs": [
{
"name": "amountShares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "totalShares",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "underlyingToShares",
"inputs": [
{
"name": "amountUnderlying",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "underlyingToSharesView",
"inputs": [
{
"name": "amountUnderlying",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "underlyingToken",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "userUnderlying",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "userUnderlyingView",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "version",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "withdraw",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "token",
"type": "address",
"internalType": "contract IERC20"
},
{
"name": "amountShares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "ExchangeRateEmitted",
"inputs": [
{
"name": "rate",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StrategyTokenSet",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": false,
"internalType": "contract IERC20"
},
{
"name": "decimals",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
}
],
"anonymous": false
},
{
"type": "error",
"name": "BalanceExceedsMaxTotalDeposits",
"inputs": []
},
{
"type": "error",
"name": "MaxPerDepositExceedsMax",
"inputs": []
},
{
"type": "error",
"name": "NewSharesZero",
"inputs": []
},
{
"type": "error",
"name": "OnlyStrategyManager",
"inputs": []
},
{
"type": "error",
"name": "OnlyUnderlyingToken",
"inputs": []
},
{
"type": "error",
"name": "TotalSharesExceedsMax",
"inputs": []
},
{
"type": "error",
"name": "WithdrawalAmountExceedsTotalDeposits",
"inputs": []
}
]Structs§
- Balance
Exceeds MaxTotal Deposits - Custom error with signature
BalanceExceedsMaxTotalDeposits()and selector0xd86bae67. - Exchange
Rate Emitted - Event with signature
ExchangeRateEmitted(uint256)and selector0xd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be8. - IStrategy
Instance - A
IStrategyinstance. - MaxPer
Deposit Exceeds Max - Custom error with signature
MaxPerDepositExceedsMax()and selector0x14ac1edc. - NewShares
Zero - Custom error with signature
NewSharesZero()and selector0x18725da6. - Only
Strategy Manager - Custom error with signature
OnlyStrategyManager()and selector0x48da714f. - Only
Underlying Token - Custom error with signature
OnlyUnderlyingToken()and selector0xc4aaf740. - Strategy
Token Set - Event with signature
StrategyTokenSet(address,uint8)and selector0x1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af557507. - Total
Shares Exceeds Max - Custom error with signature
TotalSharesExceedsMax()and selector0x5e29d146. - Withdrawal
Amount Exceeds Total Deposits - Custom error with signature
WithdrawalAmountExceedsTotalDeposits()and selector0xb469df30. - deposit
Call - Function with signature
deposit(address,uint256)and selector0x47e7ef24. - deposit
Return - Container type for the return parameters of the
deposit(address,uint256)function. - explanation
Call - Function with signature
explanation()and selector0xab5921e1. - explanation
Return - Container type for the return parameters of the
explanation()function. - shares
Call - Function with signature
shares(address)and selector0xce7c2ac2. - shares
Return - Container type for the return parameters of the
shares(address)function. - shares
ToUnderlying Call - Function with signature
sharesToUnderlying(uint256)and selector0xf3e73875. - shares
ToUnderlying Return - Container type for the return parameters of the
sharesToUnderlying(uint256)function. - shares
ToUnderlying View Call - Function with signature
sharesToUnderlyingView(uint256)and selector0x7a8b2637. - shares
ToUnderlying View Return - Container type for the return parameters of the
sharesToUnderlyingView(uint256)function. - total
Shares Call - Function with signature
totalShares()and selector0x3a98ef39. - total
Shares Return - Container type for the return parameters of the
totalShares()function. - underlying
ToShares Call - Function with signature
underlyingToShares(uint256)and selector0x8c871019. - underlying
ToShares Return - Container type for the return parameters of the
underlyingToShares(uint256)function. - underlying
ToShares View Call - Function with signature
underlyingToSharesView(uint256)and selector0xe3dae51c. - underlying
ToShares View Return - Container type for the return parameters of the
underlyingToSharesView(uint256)function. - underlying
Token Call - Function with signature
underlyingToken()and selector0x2495a599. - underlying
Token Return - Container type for the return parameters of the
underlyingToken()function. - user
Underlying Call - Function with signature
userUnderlying(address)and selector0x8f6a6240. - user
Underlying Return - Container type for the return parameters of the
userUnderlying(address)function. - user
Underlying View Call - Function with signature
userUnderlyingView(address)and selector0x553ca5f8. - user
Underlying View Return - Container type for the return parameters of the
userUnderlyingView(address)function. - version
Call - Function with signature
version()and selector0x54fd4d50. - version
Return - Container type for the return parameters of the
version()function. - withdraw
Call - Function with signature
withdraw(address,address,uint256)and selector0xd9caed12. - withdraw
Return - Container type for the return parameters of the
withdraw(address,address,uint256)function.
Enums§
- IStrategy
Calls - Container for all the
IStrategyfunction calls. - IStrategy
Errors - Container for all the
IStrategycustom errors. - IStrategy
Events - Container for all the
IStrategyevents.
Statics§
- BYTECODE
- The creation / init bytecode of the contract.
- DEPLOYED_
BYTECODE - The runtime bytecode of the contract, as deployed on the network.
Functions§
- deploy
- Deploys this contract using the given
providerand constructor arguments, if any. - deploy_
builder - Creates a
RawCallBuilderfor deploying this contract using the givenproviderand constructor arguments, if any. - new
- Creates a new wrapper around an on-chain
IStrategycontract instance.