SavingsXDai
Gnosis ERC-20 Token0xaf204776c7245bf4147c2612bf6e5972ee483701
Solidity v0.8.21+commit.d9974bed
Fungible token following the ERC-20 standard.
🤖
Query this contract from your AI
Reference:
0xaf204776c7245bf4147c2612bf6e5972ee483701
Sample prompt:
"Tell me the current state of gnosis/0xaf204776c7245bf4147c2612bf6e5972ee483701"
No AI wired up yet? →
mcp.smarts.md
Gnosis is a docs-only chain on Smarts: source code and ABI are indexed, but live on-chain data (state, recent events, admin profile) is not currently available. AI agents can still query get_contract_info and get_contract_source via MCP.
Overview
Read Functions
25
Write Functions
11
Events
5
Read Functions
DOMAIN_SEPARATOR()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
PERMIT_TYPEHASH()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
VERSION()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
allowance(owner: address, spender: address)
view
dev: See {IERC20-allowance}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
asset()
view
dev: See {IERC4626-asset}.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
balanceOf(account: address)
view
dev: See {IERC20-balanceOf}.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
convertToAssets(shares: uint256)
view
dev: See {IERC4626-convertToAssets}.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
convertToShares(assets: uint256)
view
dev: See {IERC4626-convertToShares}.
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
decimals()
view
dev: Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This "original" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint8 |
deploymentChainId()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
eip712Domain()
view
dev: See {IERC-5267}.
Returns
| Name | Type | Description |
|---|---|---|
| fields | bytes1 | |
| name | string | |
| version | string | |
| chainId | uint256 | |
| verifyingContract | address | |
| salt | bytes32 | |
| extensions | uint256[] |
maxDeposit(address)
view
dev: See {IERC4626-maxDeposit}.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
maxMint(address)
view
dev: See {IERC4626-maxMint}.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
maxRedeem(owner: address)
view
dev: See {IERC4626-maxRedeem}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
maxWithdraw(owner: address)
view
dev: See {IERC4626-maxWithdraw}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
name()
view
dev: Returns the name of the token.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
nonces(owner: address)
view
dev: See {IERC20Permit-nonces}.
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
previewDeposit(assets: uint256)
view
dev: See {IERC4626-previewDeposit}.
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
previewMint(shares: uint256)
view
dev: See {IERC4626-previewMint}.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
previewRedeem(shares: uint256)
view
dev: See {IERC4626-previewRedeem}.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
previewWithdraw(assets: uint256)
view
dev: See {IERC4626-previewWithdraw}.
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
symbol()
view
dev: Returns the symbol of the token, usually a shorter version of the name.
Returns
| Name | Type | Description |
|---|---|---|
| — | string |
totalAssets()
view
dev: See {IERC4626-totalAssets}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
totalSupply()
view
dev: See {IERC20-totalSupply}.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
wxdai()
view
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Write Functions
approve(spender: address, value: uint256)
nonpayable
dev: See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| value | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
decreaseAllowance(spender: address, requestedDecrease: uint256)
nonpayable
dev: Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`. NOTE: Although this function is designed to avoid double spending with {approval}, it can still be frontrunned, preventing any attempt of allowance reduction.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| requestedDecrease | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
deposit(assets: uint256, receiver: address)
nonpayable
dev: See {IERC4626-deposit}.
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 | |
| receiver | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
increaseAllowance(spender: address, addedValue: uint256)
nonpayable
dev: Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | |
| addedValue | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
mint(shares: uint256, receiver: address)
nonpayable
dev: See {IERC4626-mint}. As opposed to {deposit}, minting is allowed even if the vault is in a state where the price of a share is zero. In this case, the shares will be minted without requiring any assets to be deposited.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 | |
| receiver | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
permit(owner: address, spender: address, value: uint256, deadline: uint256, signature: bytes)
nonpayable
dev: Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address | |
| value | uint256 | |
| deadline | uint256 | |
| signature | bytes |
permit(owner: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32)
nonpayable
dev: Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | |
| spender | address | |
| value | uint256 | |
| deadline | uint256 | |
| v | uint8 | |
| r | bytes32 | |
| s | bytes32 |
redeem(shares: uint256, receiver: address, owner: address)
nonpayable
dev: See {IERC4626-redeem}.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 | |
| receiver | address | |
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
transfer(to: address, value: uint256)
nonpayable
dev: See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.
Parameters
| Name | Type | Description |
|---|---|---|
| to | address | |
| value | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
transferFrom(from: address, to: address, value: uint256)
nonpayable
dev: See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | |
| to | address | |
| value | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
withdraw(assets: uint256, receiver: address, owner: address)
nonpayable
dev: See {IERC4626-withdraw}.
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 | |
| receiver | address | |
| owner | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Events
Approval(owner: address, spender: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| owner | address | ✓ | |
| spender | address | ✓ | |
| value | uint256 |
Deposit(sender: address, owner: address, assets: uint256, shares: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| sender | address | ✓ | |
| owner | address | ✓ | |
| assets | uint256 | ||
| shares | uint256 |
EIP712DomainChanged()
Transfer(from: address, to: address, value: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| value | uint256 |
Withdraw(sender: address, receiver: address, owner: address, assets: uint256, shares: uint256)
| Name | Type | Indexed | Description |
|---|---|---|---|
| sender | address | ✓ | |
| receiver | address | ✓ | |
| owner | address | ✓ | |
| assets | uint256 | ||
| shares | uint256 |