L2ArbitrumToken

Arbitrum One ERC-20 Token

0xd47d14a315394ddf063174f2286ab4eb7c507fa0

Solidity v0.8.16+commit.07a7930e

Fungible token following the ERC-20 standard.

🤖
Query this contract from your AI
Reference: 0xd47d14a315394ddf063174f2286ab4eb7c507fa0
Sample prompt: “Tell me the current state of arbitrum/0xd47d14a315394ddf063174f2286ab4eb7c507fa0”
No AI wired up yet? → mcp.smarts.md

Admin & Risk

Who can change the rules?

Block #25,170,033

Detected mintable and ownable controls from the verified ABI.

Mintable Ownable

Current controls

Owner
0x0000000000000000000000000000000000000000 (none)

Overview

Read Functions
22
Write Functions
17
Events
8

Read Functions

Block #25,170,033 · just now
DOMAIN_SEPARATOR() view → 0x35fc016d8231c0d687c0925bc37f8ae2da39beb55785cbd41edafcab00cc7484

Returns

Name Type Description
bytes32
MINT_CAP_DENOMINATOR() view → 10,000

Returns

Name Type Description
uint256
MINT_CAP_NUMERATOR() view → 200

Returns

Name Type Description
uint256
MIN_MINT_INTERVAL() view → 31,536,000

Returns

Name Type Description
uint256
allowance(owner: address, spender: address) view
dev: See {IERC20-allowance}.

Parameters

Name Type Description
owner address
spender address

Returns

Name Type Description
uint256
balanceOf(account: address) view
dev: See {IERC20-balanceOf}.

Parameters

Name Type Description
account address

Returns

Name Type Description
uint256
checkpoints(account: address, pos: uint32) view
dev: Get the `pos`-th checkpoint for `account`.

Parameters

Name Type Description
account address
pos uint32

Returns

Name Type Description
tuple
decimals() view → 18
dev: Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.

Returns

Name Type Description
uint8
delegates(account: address) view
dev: Get the address `account` is currently delegating to.

Parameters

Name Type Description
account address

Returns

Name Type Description
address
getPastTotalSupply(blockNumber: uint256) view
dev: Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes! Requirements: - `blockNumber` must have been already mined

Parameters

Name Type Description
blockNumber uint256

Returns

Name Type Description
uint256
getPastVotes(account: address, blockNumber: uint256) view
dev: Retrieve the number of votes for `account` at the end of `blockNumber`. Requirements: - `blockNumber` must have been already mined

Parameters

Name Type Description
account address
blockNumber uint256

Returns

Name Type Description
uint256
getTotalDelegation() view → 0

Get the current total delegation

Returns

Name Type Description
uint256 The current total delegation
getTotalDelegationAt(blockNumber: uint256) view

Get the total delegation at a specific block number If the blockNumber is prior to the first checkpoint, returns 0

Parameters

Name Type Description
blockNumber uint256 The block number to get the total delegation at

Returns

Name Type Description
uint256 The total delegation at the given block number
getVotes(account: address) view
dev: Gets the current votes balance for `account`

Parameters

Name Type Description
account address

Returns

Name Type Description
uint256
l1Address() view → 0x0000000000000000000000000000000000000000

Returns

Name Type Description
address
name() view
dev: Returns the name of the token.

Returns

Name Type Description
string
nextMint() view → 0

Returns

Name Type Description
uint256
nonces(owner: address) view
dev: See {IERC20Permit-nonces}.

Parameters

Name Type Description
owner address

Returns

Name Type Description
uint256
numCheckpoints(account: address) view
dev: Get number of checkpoints for `account`.

Parameters

Name Type Description
account address

Returns

Name Type Description
uint32
owner() view → 0x0000000000000000000000000000000000000000
dev: Returns the address of the current owner.

Returns

Name Type Description
address
symbol() view
dev: Returns the symbol of the token, usually a shorter version of the name.

Returns

Name Type Description
string
totalSupply() view → 0
dev: See {IERC20-totalSupply}.

Returns

Name Type Description
uint256

Write Functions

adjustTotalDelegation(adjustment: int256) nonpayable

Adjusts total delegation value by the given amount

Parameters

Name Type Description
adjustment int256 The amount that the total delegation is off by, negated. This is added to the current total delegation.
approve(spender: address, amount: uint256) nonpayable
dev: See {IERC20-approve}. NOTE: If `amount` 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
amount uint256

Returns

Name Type Description
bool
burn(amount: uint256) nonpayable
dev: Destroys `amount` tokens from the caller. See {ERC20-_burn}.

Parameters

Name Type Description
amount uint256
burnFrom(account: address, amount: uint256) nonpayable
dev: Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.

Parameters

Name Type Description
account address
amount uint256
decreaseAllowance(spender: address, subtractedValue: 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 `subtractedValue`.

Parameters

Name Type Description
spender address
subtractedValue uint256

Returns

Name Type Description
bool
delegate(delegatee: address) nonpayable
dev: Delegate votes from the sender to `delegatee`.

Parameters

Name Type Description
delegatee address
delegateBySig(delegatee: address, nonce: uint256, expiry: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable
dev: Delegates votes from signer to `delegatee`

Parameters

Name Type Description
delegatee address
nonce uint256
expiry uint256
v uint8
r bytes32
s bytes32
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
initialize(_l1TokenAddress: address, _initialSupply: uint256, _owner: address) nonpayable

Initialise the L2 token

Parameters

Name Type Description
_l1TokenAddress address The address of the counterparty L1 token
_initialSupply uint256 The amount of initial supply to mint
_owner address The owner of this contract - controls minting, not upgradeability
mint(recipient: address, amount: uint256) nonpayable

Allows the owner to mint new tokens

dev: Only allows minting below an inflation cap. Set to once per year, and a maximum of 2%.

Parameters

Name Type Description
recipient address
amount uint256
permit(owner: address, spender: address, value: uint256, deadline: uint256, v: uint8, r: bytes32, s: bytes32) nonpayable
dev: See {IERC20Permit-permit}.

Parameters

Name Type Description
owner address
spender address
value uint256
deadline uint256
v uint8
r bytes32
s bytes32
postUpgradeInit(initialTotalDelegation: uint256) nonpayable

Called after upgrade to set the initial total delegation estimate The initial estimate may be manipulable with artificial delegation/undelegation prior to the upgrade. Since this value is only used for quorum calculation, and the quroum is clamped by the governors to an acceptable range, the risk/impact of manipulation is low.

Parameters

Name Type Description
initialTotalDelegation uint256 The initial total delegation at the time of upgrade proposal creation. This is an estimate since it is chosen at proposal creation time and not effective until the proposal is executed.
renounceOwnership() nonpayable
dev: Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.
transfer(to: address, amount: uint256) nonpayable
dev: See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.

Parameters

Name Type Description
to address
amount uint256

Returns

Name Type Description
bool
transferAndCall(_to: address, _value: uint256, _data: bytes) nonpayable
dev: transfer token to a contract address with additional data if the recipient is a contact.

Parameters

Name Type Description
_to address The address to transfer to.
_value uint256 The amount to be transferred.
_data bytes The extra data to be passed to the receiving contract.

Returns

Name Type Description
success bool
transferFrom(from: address, to: address, amount: 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.

Parameters

Name Type Description
from address
to address
amount uint256

Returns

Name Type Description
bool
transferOwnership(newOwner: address) nonpayable
dev: Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.

Parameters

Name Type Description
newOwner address

Events

Approval(owner: address, spender: address, value: uint256)
Name Type Indexed Description
owner address
spender address
value uint256
DelegateChanged(delegator: address, fromDelegate: address, toDelegate: address)
Name Type Indexed Description
delegator address
fromDelegate address
toDelegate address
DelegateVotesChanged(delegate: address, previousBalance: uint256, newBalance: uint256)
Name Type Indexed Description
delegate address
previousBalance uint256
newBalance uint256
Initialized(version: uint8)
Name Type Indexed Description
version uint8
OwnershipTransferred(previousOwner: address, newOwner: address)
Name Type Indexed Description
previousOwner address
newOwner address
TotalDelegationAdjusted(previousTotalDelegation: uint256, newTotalDelegation: uint256)
Name Type Indexed Description
previousTotalDelegation uint256
newTotalDelegation uint256
Transfer(from: address, to: address, value: uint256, data: bytes)
Name Type Indexed Description
from address
to address
value uint256
data bytes
Transfer(from: address, to: address, value: uint256)
Name Type Indexed Description
from address
to address
value uint256