View Source: contracts/interfaces/IERC777.sol
Interface of the ERC777Token standard as defined in the EIP.
- This contract uses the https://eips.ethereum.org/EIPS/eip-1820[ERC1820 registry standard] to let token holders and recipients react to token movements by using setting implementers for the associated interfaces in said registry. See {IERC1820Registry} and {ERC1820Implementer}.
Events
event Sent(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData);
event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData);
event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData);
event AuthorizedOperator(address indexed operator, address indexed tokenHolder);
event RevokedOperator(address indexed operator, address indexed tokenHolder);
- name()
- symbol()
- granularity()
- totalSupply()
- balanceOf(address owner)
- send(address recipient, uint256 amount, bytes data)
- burn(uint256 amount, bytes data)
- isOperatorFor(address operator, address tokenHolder)
- authorizeOperator(address operator)
- revokeOperator(address operator)
- defaultOperators()
- operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData)
- operatorBurn(address account, uint256 amount, bytes data, bytes operatorData)
Returns the name of the token.
function name() external view
returns(string)
Source Code
function name() external view returns (string memory);
Returns the symbol of the token, usually a shorter version of the name.
function symbol() external view
returns(string)
Source Code
function symbol() external view returns (string memory);
Returns the smallest part of the token that is not divisible. This means all token operations (creation, movement and destruction) must have amounts that are a multiple of this number. * For most token contracts, this value will equal 1.
function granularity() external view
returns(uint256)
Source Code
function granularity() external view returns (uint256);
⤿ Overridden Implementation(s): IERC20.totalSupply
Returns the amount of tokens in existence.
function totalSupply() external view
returns(uint256)
Source Code
function totalSupply() external view returns (uint256);
⤿ Overridden Implementation(s): IERC20.balanceOf
Returns the amount of tokens owned by an account (owner
).
function balanceOf(address owner) external view
returns(uint256)
Arguments
Name | Type | Description |
---|---|---|
owner | address |
Source Code
function balanceOf(address owner) external view returns (uint256);
Moves amount
tokens from the caller's account to recipient
.
* If send or receive hooks are registered for the caller and recipient
,
the corresponding functions will be called with data
and empty
operatorData
. See {IERC777Sender} and {IERC777Recipient}.
* Emits a {Sent} event.
* Requirements
* - the caller must have at least amount
tokens.
recipient
cannot be the zero address.- if
recipient
is a contract, it must implement the {IERC777Recipient} interface.
function send(address recipient, uint256 amount, bytes data) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
recipient | address | |
amount | uint256 | |
data | bytes |
Source Code
function send(
address recipient,
uint256 amount,
bytes calldata data
) external;
Destroys amount
tokens from the caller's account, reducing the
total supply.
* If a send hook is registered for the caller, the corresponding function
will be called with data
and empty operatorData
. See {IERC777Sender}.
* Emits a {Burned} event.
* Requirements
* - the caller must have at least amount
tokens.
function burn(uint256 amount, bytes data) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
amount | uint256 | |
data | bytes |
Source Code
function burn(uint256 amount, bytes calldata data) external;
Returns true if an account is an operator of tokenHolder
.
Operators can send and burn tokens on behalf of their owners. All
accounts are their own operator.
* See {operatorSend} and {operatorBurn}.
function isOperatorFor(address operator, address tokenHolder) external view
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
operator | address | |
tokenHolder | address |
Source Code
function isOperatorFor(address operator, address tokenHolder) external view returns (bool);
Make an account an operator of the caller.
* See {isOperatorFor}.
* Emits an {AuthorizedOperator} event.
* Requirements
* - operator
cannot be calling address.
function authorizeOperator(address operator) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
operator | address |
Source Code
function authorizeOperator(address operator) external;
Make an account an operator of the caller.
* See {isOperatorFor} and {defaultOperators}.
* Emits a {RevokedOperator} event.
* Requirements
* - operator
cannot be calling address.
function revokeOperator(address operator) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
operator | address |
Source Code
function revokeOperator(address operator) external;
Returns the list of default operators. These accounts are operators for all token holders, even if {authorizeOperator} was never called on them. * This list is immutable, but individual holders may revoke these via {revokeOperator}, in which case {isOperatorFor} will return false.
function defaultOperators() external view
returns(address[])
Source Code
function defaultOperators() external view returns (address[] memory);
Moves amount
tokens from sender
to recipient
. The caller must
be an operator of sender
.
* If send or receive hooks are registered for sender
and recipient
,
the corresponding functions will be called with data
and
operatorData
. See {IERC777Sender} and {IERC777Recipient}.
* Emits a {Sent} event.
* Requirements
* - sender
cannot be the zero address.
sender
must have at leastamount
tokens.- the caller must be an operator for
sender
. recipient
cannot be the zero address.- if
recipient
is a contract, it must implement the {IERC777Recipient} interface.
function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
sender | address | |
recipient | address | |
amount | uint256 | |
data | bytes | |
operatorData | bytes |
Source Code
function operatorSend(
address sender,
address recipient,
uint256 amount,
bytes calldata data,
bytes calldata operatorData
) external;
Destoys amount
tokens from account
, reducing the total supply.
The caller must be an operator of account
.
* If a send hook is registered for account
, the corresponding function
will be called with data
and operatorData
. See {IERC777Sender}.
* Emits a {Burned} event.
* Requirements
* - account
cannot be the zero address.
account
must have at leastamount
tokens.- the caller must be an operator for
account
.
function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
account | address | |
amount | uint256 | |
data | bytes | |
operatorData | bytes |
Source Code
function operatorBurn(
address account,
uint256 amount,
bytes calldata data,
bytes calldata operatorData
) external;
- Address
- Administered
- AdminRole
- AdvancedToken
- AdvancedTokenStorage
- Affiliates
- AffiliatesEvents
- ApprovalReceiver
- BProPriceFeed
- CheckpointsShared
- Constants
- Context
- DevelopmentFund
- DummyContract
- EnumerableAddressSet
- EnumerableBytes32Set
- EnumerableBytes4Set
- ERC20
- ERC20Detailed
- ErrorDecoder
- Escrow
- EscrowReward
- FeedsLike
- FeesEvents
- FeeSharingCollector
- FeeSharingCollectorProxy
- FeeSharingCollectorStorage
- FeesHelper
- FourYearVesting
- FourYearVestingFactory
- FourYearVestingLogic
- FourYearVestingStorage
- GenericTokenSender
- GovernorAlpha
- GovernorVault
- IApproveAndCall
- IChai
- IContractRegistry
- IConverterAMM
- IERC1820Registry
- IERC20_
- IERC20
- IERC777
- IERC777Recipient
- IERC777Sender
- IFeeSharingCollector
- IFourYearVesting
- IFourYearVestingFactory
- IFunctionsList
- ILiquidityMining
- ILiquidityPoolV1Converter
- ILoanPool
- ILoanToken
- ILoanTokenLogicBeacon
- ILoanTokenLogicModules
- ILoanTokenLogicProxy
- ILoanTokenModules
- ILoanTokenWRBTC
- ILockedSOV
- IMoCState
- IModulesProxyRegistry
- Initializable
- InterestUser
- IPot
- IPriceFeeds
- IPriceFeedsExt
- IProtocol
- IRSKOracle
- ISovryn
- ISovrynSwapNetwork
- IStaking
- ISwapsImpl
- ITeamVesting
- ITimelock
- IV1PoolOracle
- IVesting
- IVestingFactory
- IVestingRegistry
- IWrbtc
- IWrbtcERC20
- LenderInterestStruct
- LiquidationHelper
- LiquidityMining
- LiquidityMiningConfigToken
- LiquidityMiningProxy
- LiquidityMiningStorage
- LoanClosingsEvents
- LoanClosingsLiquidation
- LoanClosingsRollover
- LoanClosingsShared
- LoanClosingsWith
- LoanClosingsWithoutInvariantCheck
- LoanInterestStruct
- LoanMaintenance
- LoanMaintenanceEvents
- LoanOpenings
- LoanOpeningsEvents
- LoanParamsStruct
- LoanSettings
- LoanSettingsEvents
- LoanStruct
- LoanToken
- LoanTokenBase
- LoanTokenLogicBeacon
- LoanTokenLogicLM
- LoanTokenLogicProxy
- LoanTokenLogicStandard
- LoanTokenLogicStorage
- LoanTokenLogicWrbtc
- LoanTokenSettingsLowerAdmin
- LockedSOV
- MarginTradeStructHelpers
- Medianizer
- ModuleCommonFunctionalities
- ModulesCommonEvents
- ModulesProxy
- ModulesProxyRegistry
- MultiSigKeyHolders
- MultiSigWallet
- Mutex
- Objects
- OrderStruct
- OrigingVestingCreator
- OriginInvestorsClaim
- Ownable
- Pausable
- PausableOz
- PreviousLoanToken
- PreviousLoanTokenSettingsLowerAdmin
- PriceFeedRSKOracle
- PriceFeeds
- PriceFeedsLocal
- PriceFeedsMoC
- PriceFeedV1PoolOracle
- ProtocolAffiliatesInterface
- ProtocolLike
- ProtocolSettings
- ProtocolSettingsEvents
- ProtocolSettingsLike
- ProtocolSwapExternalInterface
- ProtocolTokenUser
- Proxy
- ProxyOwnable
- ReentrancyGuard
- RewardHelper
- RSKAddrValidator
- SafeERC20
- SafeMath
- SafeMath96
- setGet
- SharedReentrancyGuard
- SignedSafeMath
- SOV
- sovrynProtocol
- StakingAdminModule
- StakingGovernanceModule
- StakingInterface
- StakingProxy
- StakingRewards
- StakingRewardsProxy
- StakingRewardsStorage
- StakingShared
- StakingStakeModule
- StakingStorageModule
- StakingStorageShared
- StakingVestingModule
- StakingWithdrawModule
- State
- SwapsEvents
- SwapsExternal
- SwapsImplLocal
- SwapsImplSovrynSwap
- SwapsUser
- TeamVesting
- Timelock
- TimelockHarness
- TimelockInterface
- TokenSender
- UpgradableProxy
- USDTPriceFeed
- Utils
- VaultController
- Vesting
- VestingCreator
- VestingFactory
- VestingLogic
- VestingRegistry
- VestingRegistry2
- VestingRegistry3
- VestingRegistryLogic
- VestingRegistryProxy
- VestingRegistryStorage
- VestingStorage
- WeightedStakingModule
- WRBTC