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.
recipientcannot be the zero address.- if
recipientis a contract, it must implement the {IERC777Recipient} interface.
function send(address recipient, uint256 amount, bytes data) external nonpayableArguments
| 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 nonpayableArguments
| 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 nonpayableArguments
| 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 nonpayableArguments
| 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.
sendermust have at leastamounttokens.- the caller must be an operator for
sender. recipientcannot be the zero address.- if
recipientis a contract, it must implement the {IERC777Recipient} interface.
function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData) external nonpayableArguments
| 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.
accountmust have at leastamounttokens.- the caller must be an operator for
account.
function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData) external nonpayableArguments
| 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