PermittableToken

Gnosis ERC-20 Token Browse chains

0x9c58bacc331c9aa871afd802db6379a98e80cedb

Proxy implementation: 0xf8d1677c8a0c961938bf2f9adc3f3cfda759a9d9

Solidity v0.4.24+commit.e67f0147

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0x9c58bacc331c9aa871afd802db6379a98e80cedb
Sample prompt: "Tell me the current state of gnosis/0x9c58bacc331c9aa871afd802db6379a98e80cedb"
No AI wired up yet? → mcp.smarts.md · Browse chains
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
17
Write Functions
20
Events
8

Read Functions

mintingFinished() view

Returns true if minting has been permanently finished and no further minting is allowed.✨ AI

Returns

Name Type Description
bool true if minting is permanently finished; false if minting can still occur.✨ AI
name() view

Returns the token's name.✨ AI

Returns

Name Type Description
string The token's name as a human-readable string.✨ AI
totalSupply() view

Returns the total number of tokens in circulation.✨ AI

dev: Total number of tokens in existence

Returns

Name Type Description
uint256 Total number of tokens existing (uint256), i.e., the token supply.✨ AI
PERMIT_TYPEHASH() view

Returns the EIP-2612 permit typehash used to construct permit signatures.✨ AI

Returns

Name Type Description
bytes32 The EIP-712 type hash (bytes32) for the permit struct used in signature verification.✨ AI
decimals() view

Returns the number of decimal places used by the token.✨ AI

Returns

Name Type Description
uint8 uint8: the number of decimal places for token amounts, used to format values for display and UI✨ AI
DOMAIN_SEPARATOR() view

Return the EIP-712 domain separator used to validate permit signatures.✨ AI

Returns

Name Type Description
bytes32 The EIP-712 domain separator (bytes32) used to build and verify permit signatures.✨ AI
version() view

Returns the token contract's semantic version string.✨ AI

Returns

Name Type Description
string The contract version string, typically a semantic version identifier (e.g., "1.2.3").✨ AI
balanceOf(_owner: address) view

Returns the token balance of the specified account address.✨ AI

dev: Gets the balance of the specified address.

Parameters

Name Type Description
_owner address The address to query the the balance of.

Returns

Name Type Description
uint256 An uint256 representing the amount owned by the passed address.
isBridge(_address: address) view

Checks whether the given address is registered as a bridge for the token.✨ AI

Parameters

Name Type Description
_address address Address to check for bridge registration.✨ AI

Returns

Name Type Description
bool True if the address is a registered bridge, otherwise false.✨ AI
nonces(address) view

Return the current permit nonce for an account to support off-chain signature replay protection.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
uint256 The current uint256 nonce associated with the address; increments after each successful permit.✨ AI
getTokenInterfacesVersion() pure

Return the token interfaces semantic version as major, minor, and patch numbers.✨ AI

Returns

Name Type Description
major uint64 major: The semantic version major number, incremented for incompatible API changes.✨ AI
minor uint64 minor: The semantic version minor number, incremented for backward-compatible additions.✨ AI
patch uint64 patch: The semantic version patch number, incremented for backward-compatible bug fixes.✨ AI
owner() view

Returns the address of the account that currently owns the contract.✨ AI

Returns

Name Type Description
address The owner's address (account with administrative privileges over the contract).✨ AI
symbol() view

Returns the token's symbol as a short identifier string.✨ AI

Returns

Name Type Description
string The token's symbol as a string, e.g., "DAI" or "USDC".✨ AI
PERMIT_TYPEHASH_LEGACY() view

Returns the legacy EIP-712 type hash used by the contract's permit function.✨ AI

Returns

Name Type Description
bytes32 bytes32 legacy type hash for permit signatures (EIP-712 type hash for legacy permit format).✨ AI
bridgeContract() view

Return the address of the bridge contract used for token bridging.✨ AI

Returns

Name Type Description
address The address of the bridge contract authorized to perform cross-chain token transfers.✨ AI
allowance(_owner: address, _spender: address) view

Returns the remaining number of tokens that _spender is allowed to spend on behalf of _owner.✨ AI

dev: Function to check the amount of tokens that an owner allowed to a spender.

Parameters

Name Type Description
_owner address address The address which owns the funds.
_spender address address The address which will spend the funds.

Returns

Name Type Description
uint256 A uint256 specifying the amount of tokens still available for the spender.
expirations(address, address) view

Returns the permit expiration timestamp for a given owner and spender.✨ AI

Parameters

Name Type Description
address
address

Returns

Name Type Description
uint256 Expiration timestamp as a uint256 Unix time (seconds); 0 if no expiration is set.✨ AI

Write Functions

approve(_to: address, _value: uint256) nonpayable

Allow a specified address to spend up to a given amount of your tokens.✨ AI

dev: Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729

Parameters

Name Type Description
_to address Address granted permission to spend tokens.✨ AI
_value uint256 The amount of tokens to be spent.

Returns

Name Type Description
result bool true if the allowance was successfully set.✨ AI
setBridgeContract(_bridgeContract: address) nonpayable

Sets the bridge contract address that the token contract will recognize for bridge operations.✨ AI

Parameters

Name Type Description
_bridgeContract address Address to assign as the bridge contract which receives bridge-specific permissions.✨ AI
transferFrom(_sender: address, _recipient: address, _amount: uint256) nonpayable

Transfer tokens from _sender to _recipient using an approved allowance.✨ AI

dev: Transfer tokens from one address to another

Parameters

Name Type Description
_sender address Account to debit tokens from.✨ AI
_recipient address Account to credit tokens to.✨ AI
_amount uint256 Number of tokens to transfer.✨ AI

Returns

Name Type Description
bool True if the transfer succeeded.✨ AI
increaseAllowance(_to: address, _addedValue: uint256) nonpayable

Increase the caller's allowance for a spender by a specified amount.✨ AI

dev: Atomically increases the allowance granted to spender by the caller.

Parameters

Name Type Description
_to address The address which will spend the funds.
_addedValue uint256 The amount of tokens to increase the allowance by.

Returns

Name Type Description
result bool True if the allowance was successfully increased.✨ AI
transferAndCall(_to: address, _value: uint256, _data: bytes) nonpayable

Transfer tokens to a recipient and then invoke the recipient contract with the provided data.✨ AI

Parameters

Name Type Description
_to address Recipient address that will receive tokens and the subsequent callback call.✨ AI
_value uint256 Amount of tokens to transfer to the recipient, in token smallest units.✨ AI
_data bytes Arbitrary calldata forwarded to the recipient contract after the transfer.✨ AI

Returns

Name Type Description
bool True if the token transfer and the subsequent contract call both succeeded, otherwise false.✨ AI
mint(_to: address, _amount: uint256) nonpayable

Mints new tokens and assigns them to the specified address, increasing the contract's total supply.✨ AI

dev: Function to mint tokens

Parameters

Name Type Description
_to address The address that will receive the minted tokens.
_amount uint256 The amount of tokens to mint.

Returns

Name Type Description
bool A boolean that indicates if the operation was successful.
burn(_value: uint256) nonpayable

Burns a specified amount of tokens from the caller's balance, reducing the total supply.✨ AI

dev: Burns a specific amount of tokens.

Parameters

Name Type Description
_value uint256 The amount of token to be burned.
decreaseApproval(_spender: address, _subtractedValue: uint256) nonpayable

Decrease the caller's token allowance for a specified spender by a given amount.✨ AI

dev: Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol

Parameters

Name Type Description
_spender address The address which will spend the funds.
_subtractedValue uint256 The amount of tokens to decrease the allowance by.

Returns

Name Type Description
bool True if the call succeeds and the allowance is updated, false otherwise.✨ AI
claimTokens(_token: address, _to: address) nonpayable

Recover ERC-20 tokens accidentally sent to this contract by transferring them to the specified recipient.✨ AI

dev: Withdraws the erc20 tokens or native coins from this contract.

Parameters

Name Type Description
_token address address of the claimed token or address(0) for native coins.
_to address address of the tokens/coins receiver.
renounceOwnership() nonpayable

Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore.

dev: Allows the current owner to relinquish control of the contract.
finishMinting() nonpayable

Permanently disable further token minting when called by an authorized account.✨ AI

dev: Function to stop minting new tokens.

Returns

Name Type Description
bool True if the operation was successful.
permit(_holder: address, _spender: address, _nonce: uint256, _expiry: uint256, _allowed: bool, _v: uint8, _r: bytes32, _s: bytes32) nonpayable

Set a spender's allowance using an off-chain signature; supports expiry and nonce replay protection.✨ AI

dev: Allows to spend holder's unlimited amount by the specified spender. The function can be called by anyone, but requires having allowance parameters signed by the holder according to EIP712.

Parameters

Name Type Description
_holder address The holder's address.
_spender address The spender's address.
_nonce uint256 The nonce taken from `nonces(_holder)` public getter.
_expiry uint256 The allowance expiration date (unix timestamp in UTC). Can be zero for no expiration. Forced to zero if `_allowed` is `false`. Note that timestamps are not precise, malicious miner/validator can manipulate them to some extend. Assume that there can be a 900 seconds time delta between the desired timestamp and the actual expiration.
_allowed bool True to enable unlimited allowance for the spender by the holder. False to disable.
_v uint8 A final byte of signature (ECDSA component).
_r bytes32 The first 32 bytes of signature (ECDSA component).
_s bytes32 The second 32 bytes of signature (ECDSA component).
decreaseAllowance(spender: address, subtractedValue: uint256) nonpayable

Decreases the caller's allowance for a spender by a specified amount and emits an Approval event.✨ AI

Parameters

Name Type Description
spender address Address authorized to spend the caller's tokens.✨ AI
subtractedValue uint256 Amount to subtract from the spender's current allowance.✨ AI

Returns

Name Type Description
bool True if the allowance was decreased successfully.✨ AI
transfer(_to: address, _value: uint256) nonpayable

Transfer tokens from the caller to the specified recipient address.✨ AI

dev: Transfer token for a specified address

Parameters

Name Type Description
_to address The address to transfer to.
_value uint256 The amount to be transferred.

Returns

Name Type Description
bool True if the transfer succeeded.✨ AI
push(_to: address, _amount: uint256) nonpayable
dev: An alias for `transfer` function.

Parameters

Name Type Description
_to address The address of the recipient.
_amount uint256 The value to transfer.
move(_from: address, _to: address, _amount: uint256) nonpayable
dev: An alias for `transferFrom` function.

Parameters

Name Type Description
_from address The address of the sender.
_to address The address of the recipient.
_amount uint256 The value to transfer.
permit(_holder: address, _spender: address, _value: uint256, _deadline: uint256, _v: uint8, _r: bytes32, _s: bytes32) nonpayable

Set a spender's allowance using an off-chain signature; supports expiry and nonce replay protection.✨ AI

dev: Allows to spend holder's unlimited amount by the specified spender. The function can be called by anyone, but requires having allowance parameters signed by the holder according to EIP712.

Parameters

Name Type Description
_holder address The holder's address.
_spender address The spender's address.
_value uint256
_deadline uint256
_v uint8 A final byte of signature (ECDSA component).
_r bytes32 The first 32 bytes of signature (ECDSA component).
_s bytes32 The second 32 bytes of signature (ECDSA component).
increaseApproval(_spender: address, _addedValue: uint256) nonpayable
dev: Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol

Parameters

Name Type Description
_spender address The address which will spend the funds.
_addedValue uint256 The amount of tokens to increase the allowance by.

Returns

Name Type Description
bool
pull(_from: address, _amount: uint256) nonpayable
dev: Makes a request to transfer the specified amount from the specified address to the caller's address.

Parameters

Name Type Description
_from address The address of the holder.
_amount uint256 The value to transfer.
transferOwnership(_newOwner: address) nonpayable
dev: Allows the current owner to transfer control of the contract to a newOwner.

Parameters

Name Type Description
_newOwner address The address to transfer ownership to.

Events

Mint(to: address, amount: uint256)
Name Type Indexed Description
to address
amount uint256
MintFinished()
OwnershipRenounced(previousOwner: address)
Name Type Indexed Description
previousOwner address
OwnershipTransferred(previousOwner: address, newOwner: address)
Name Type Indexed Description
previousOwner address
newOwner address
Burn(burner: address, value: uint256)
Name Type Indexed Description
burner address
value uint256
Transfer(from: address, to: address, value: uint256, data: bytes)
Name Type Indexed Description
from address
to address
value uint256
data bytes
Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256