// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.4;
library Whitelabel {
struct Version {
uint256 major;
uint256 minor;
uint256 patch;
}
}
interface IWhitelabel {
struct InitializeParams {
address _initialOwner;
string _name;
string _symbol;
}
error AccountIsFrozen(address frozenAccount);
error ECDSAInvalidSignature();
error ECDSAInvalidSignatureLength(uint256 length);
error ECDSAInvalidSignatureS(bytes32 s);
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
error ERC20InvalidApprover(address approver);
error ERC20InvalidReceiver(address receiver);
error ERC20InvalidSender(address sender);
error ERC20InvalidSpender(address spender);
error ERC2612ExpiredSignature(uint256 deadline);
error ERC2612InvalidSigner(address signer, address owner);
error ERC4626ExceededMaxDeposit(address receiver, uint256 assets, uint256 max);
error ERC4626ExceededMaxMint(address receiver, uint256 shares, uint256 max);
error ERC4626ExceededMaxRedeem(address owner, uint256 shares, uint256 max);
error ERC4626ExceededMaxWithdraw(address owner, uint256 assets, uint256 max);
error EnforcedPause();
error ExpectedPause();
error InvalidAccountNonce(address account, uint256 currentNonce);
error InvalidInitialization();
error NotInitializing();
error OwnableInvalidOwner(address owner);
error OwnableUnauthorizedAccount(address account);
error SafeERC20FailedOperation(address token);
event Approval(address indexed owner, address indexed spender, uint256 value);
event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares);
event EIP712DomainChanged();
event Initialized(uint64 version);
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event Paused(address account);
event Transfer(address indexed from, address indexed to, uint256 value);
event Unpaused(address account);
event Withdraw(
address indexed sender,
address indexed receiver,
address indexed owner,
uint256 assets,
uint256 shares
);
function AUSD() external view returns (address);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function acceptOwnership() external;
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function asset() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function convertToAssets(uint256 shares) external view returns (uint256);
function convertToShares(uint256 assets) external view returns (uint256);
function decimals() external view returns (uint8);
function deposit(uint256 assets, address receiver) external returns (uint256);
function eip712Domain()
external
view
returns (
bytes1 fields,
string memory name,
string memory version,
uint256 chainId,
address verifyingContract,
bytes32 salt,
uint256[] memory extensions
);
function implementationAddress() external view returns (address);
function initialize(InitializeParams memory _params) external;
function maxDeposit(address) external view returns (uint256);
function maxMint(address) external view returns (uint256);
function maxRedeem(address owner) external view returns (uint256);
function maxWithdraw(address owner) external view returns (uint256);
function mint(uint256 shares, address receiver) external returns (uint256);
function name() external view returns (string memory);
function nonces(address owner) external view returns (uint256);
function owner() external view returns (address);
function pause() external;
function paused() external view returns (bool);
function pendingOwner() external view returns (address);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
function previewDeposit(uint256 assets) external view returns (uint256);
function previewMint(uint256 shares) external view returns (uint256);
function previewRedeem(uint256 shares) external view returns (uint256);
function previewWithdraw(uint256 assets) external view returns (uint256);
function proxyAdminAddress() external view returns (address);
function redeem(uint256 shares, address receiver, address owner) external returns (uint256);
function renounceOwnership() external;
function symbol() external view returns (string memory);
function totalAssets() external view returns (uint256);
function totalSupply() external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function transferOwnership(address newOwner) external;
function unpause() external;
function version() external pure returns (Whitelabel.Version memory _version);
function withdraw(uint256 assets, address receiver, address owner) external returns (uint256);
}