V1 Smart Contract Documentation
  • Bondtroller
    • Bondtroller
    • Bondtroller V 1 Storage
    • Bondtroller V 2 Storage
    • Bondtroller V 3 Storage
    • Bondtroller V 4 Storage
    • Bondtroller V 5 Storage
  • B Token
    • B Erc 20
    • B Erc 20 Interface
    • B Erc 20 Storage
    • B Ether
    • B Lending Token
    • B Token
    • B Token Interface
    • B Token Storage
  • Interest Rate Model
    • Base Jump Rate Model V 2
    • Fringe Interest Rate Model
    • Interest Rate Model
    • Jump Rate Model V 2
  • Interfaces
    • EIP 20 Interface
    • EIP 20 Non Standard Interface
    • IB Erc 20 Token
    • IB Lending Token
    • IB Primary Index Token
    • I Comptroller
    • I Price Provider Aggregator
    • I Primary Index Token
    • IPRJ
    • I Simple Price Oracle
    • IUSDC Test
  • Mock
    • PRJ
  • Openzeppelin
    • Contracts
      • Access
        • Access Control
        • Access Control Enumerable
        • I Access Control
        • I Access Control Enumerable
        • Ownable
      • Finance
        • Payment Splitter
      • Governance
        • Compatibility
          • Governor Compatibility Bravo
          • I Governor Compatibility Bravo
        • Extensions
          • Governor Counting Simple
          • Governor Proposal Threshold
          • Governor Timelock Compound
          • Governor Timelock Control
          • Governor Votes
          • Governor Votes Comp
          • Governor Votes Quorum Fraction
          • I Compound Timelock
          • I Governor Timelock
        • Governor
        • I Governor
        • Timelock Controller
      • Interfaces
        • IERC 1271
        • IERC 1363
        • IERC 1363 Receiver
        • IERC 1363 Spender
        • IERC 2612
        • IERC 2981
        • IERC 3156 Flash Borrower
        • IERC 3156 Flash Lender
      • Metatx
        • ERC 2771 Context
        • Minimal Forwarder
      • Proxy
        • Beacon
          • Beacon Proxy
          • I Beacon
          • Upgradeable Beacon
        • ERC 1967
          • ERC 1967 Proxy
          • ERC 1967 Upgrade
        • Transparent
          • Proxy Admin
          • Transparent Upgradeable Proxy
        • Utils
          • Initializable
          • UUPS Upgradeable
        • Clones
        • Proxy
      • Security
        • Pausable
        • Pull Payment
        • Reentrancy Guard
      • Token
        • ERC 1155
          • Extensions
            • ERC 1155 Burnable
            • ERC 1155 Pausable
            • ERC 1155 Supply
            • IERC 1155 Metadata URI
          • Presets
            • ERC 1155 Preset Minter Pauser
          • Utils
            • ERC 1155 Holder
            • ERC 1155 Receiver
          • IERC 1155
          • IERC 1155 Receiver
        • ERC 20
          • Extensions
            • ERC 20 Burnable
            • ERC 20 Capped
            • ERC 20 Flash Mint
            • ERC 20 Pausable
            • ERC 20 Permit
            • ERC 20 Snapshot
            • ERC 20 Votes
            • ERC 20 Votes Comp
            • ERC 20 Wrapper
            • IERC 20 Metadata
            • IERC 20 Permit
          • Presets
            • ERC 20 Preset Fixed Supply
            • ERC 20 Preset Minter Pauser
          • Utils
            • Safe ERC 20
            • Token Timelock
          • IERC 20
        • ERC 721
          • Extensions
            • ERC 721 Burnable
            • ERC 721 Enumerable
            • ERC 721 Pausable
            • ERC 721 URI Storage
            • IERC 721 Enumerable
            • IERC 721 Metadata
          • Presets
            • ERC 721 Preset Minter Pauser Auto Id
          • Utils
            • ERC 721 Holder
          • IERC 721
          • IERC 721 Receiver
        • ERC 777
          • Presets
            • ERC 777 Preset Fixed Supply
          • IERC 777
          • IERC 777 Recipient
          • IERC 777 Sender
      • Utils
        • Cryptography
          • ECDSA
          • EIP 712
          • Merkle Proof
          • Signature Checker
        • Escrow
          • Conditional Escrow
          • Escrow
          • Refund Escrow
        • Introspection
          • ERC 165
          • ERC 165 Checker
          • ERC 165 Storage
          • ERC 1820 Implementer
          • IERC 165
          • IERC 1820 Implementer
          • IERC 1820 Registry
        • Math
          • Math
          • Safe Cast
          • Safe Math
          • Signed Safe Math
        • Structs
          • Bit Maps
          • Enumerable Map
          • Enumerable Set
        • Address
        • Arrays
        • Context
        • Counters
        • Create 2
        • Multicall
        • Storage Slot
        • Strings
        • Timers
    • Contracts Upgradeable
      • Access
        • Access Control Enumerable Upgradeable
        • Access Control Upgradeable
        • I Access Control Enumerable Upgradeable
        • I Access Control Upgradeable
        • Ownable Upgradeable
      • Finance
        • Payment Splitter Upgradeable
      • Governance
        • Compatibility
          • Governor Compatibility Bravo Upgradeable
          • I Governor Compatibility Bravo Upgradeable
        • Extensions
          • Governor Counting Simple Upgradeable
          • Governor Proposal Threshold Upgradeable
          • Governor Timelock Compound Upgradeable
          • Governor Timelock Control Upgradeable
          • Governor Votes Comp Upgradeable
          • Governor Votes Quorum Fraction Upgradeable
          • Governor Votes Upgradeable
          • I Compound Timelock Upgradeable
          • I Governor Timelock Upgradeable
        • Governor Upgradeable
        • I Governor Upgradeable
        • Timelock Controller Upgradeable
      • Interfaces
        • IERC 1271 Upgradeable
        • IERC 1363 Receiver Upgradeable
        • IERC 1363 Spender Upgradeable
        • IERC 1363 Upgradeable
        • IERC 2612 Upgradeable
        • IERC 2981 Upgradeable
        • IERC 3156 Flash Borrower Upgradeable
        • IERC 3156 Flash Lender Upgradeable
      • Metatx
        • ERC 2771 Context Upgradeable
        • Minimal Forwarder Upgradeable
      • Proxy
        • Beacon
          • I Beacon Upgradeable
        • ERC 1967
          • ERC 1967 Upgrade Upgradeable
        • Utils
          • Initializable
          • UUPS Upgradeable
        • Clones Upgradeable
      • Security
        • Pausable Upgradeable
        • Pull Payment Upgradeable
        • Reentrancy Guard Upgradeable
      • Token
        • ERC 1155
          • Extensions
            • ERC 1155 Burnable Upgradeable
            • ERC 1155 Pausable Upgradeable
            • ERC 1155 Supply Upgradeable
            • IERC 1155 Metadata URI Upgradeable
          • Presets
            • ERC 1155 Preset Minter Pauser Upgradeable
          • Utils
            • ERC 1155 Holder Upgradeable
            • ERC 1155 Receiver Upgradeable
          • ERC 1155 Upgradeable
          • IERC 1155 Receiver Upgradeable
          • IERC 1155 Upgradeable
        • ERC 20
          • Extensions
            • ERC 20 Burnable Upgradeable
            • ERC 20 Capped Upgradeable
            • ERC 20 Flash Mint Upgradeable
            • ERC 20 Pausable Upgradeable
            • ERC 20 Permit Upgradeable
            • ERC 20 Snapshot Upgradeable
            • ERC 20 Votes Comp Upgradeable
            • ERC 20 Votes Upgradeable
            • ERC 20 Wrapper Upgradeable
            • IERC 20 Metadata Upgradeable
            • IERC 20 Permit Upgradeable
          • Presets
            • ERC 20 Preset Fixed Supply Upgradeable
            • ERC 20 Preset Minter Pauser Upgradeable
          • Utils
            • Safe ERC 20 Upgradeable
            • Token Timelock Upgradeable
          • ERC 20 Upgradeable
          • IERC 20 Upgradeable
        • ERC 721
          • Extensions
            • ERC 721 Burnable Upgradeable
            • ERC 721 Enumerable Upgradeable
            • ERC 721 Pausable Upgradeable
            • ERC 721 URI Storage Upgradeable
            • IERC 721 Enumerable Upgradeable
            • IERC 721 Metadata Upgradeable
          • Presets
            • ERC 721 Preset Minter Pauser Auto Id Upgradeable
          • Utils
            • ERC 721 Holder Upgradeable
          • ERC 721 Upgradeable
          • IERC 721 Receiver Upgradeable
          • IERC 721 Upgradeable
        • ERC 777
          • Presets
            • ERC 777 Preset Fixed Supply Upgradeable
          • ERC 777 Upgradeable
          • IERC 777 Recipient Upgradeable
          • IERC 777 Sender Upgradeable
          • IERC 777 Upgradeable
      • Utils
        • Cryptography
          • ECDSA Upgradeable
          • EIP 712 Upgradeable
          • Merkle Proof Upgradeable
          • Signature Checker Upgradeable
        • Escrow
          • Conditional Escrow Upgradeable
          • Escrow Upgradeable
          • Refund Escrow Upgradeable
        • Introspection
          • ERC 165 Checker Upgradeable
          • ERC 165 Storage Upgradeable
          • ERC 165 Upgradeable
          • ERC 1820 Implementer Upgradeable
          • IERC 165 Upgradeable
          • IERC 1820 Implementer Upgradeable
          • IERC 1820 Registry Upgradeable
        • Math
          • Math Upgradeable
          • Safe Cast Upgradeable
          • Safe Math Upgradeable
          • Signed Safe Math Upgradeable
        • Structs
          • Bit Maps Upgradeable
          • Enumerable Map Upgradeable
          • Enumerable Set Upgradeable
        • Address Upgradeable
        • Arrays Upgradeable
        • Context Upgradeable
        • Counters Upgradeable
        • Create 2 Upgradeable
        • Multicall Upgradeable
        • Storage Slot Upgradeable
        • Strings Upgradeable
        • Timers Upgradeable
  • Price Oracle
    • Priceproviders
      • Chainlink
        • Aggregator V 3 Interface
      • Uniswap V 2
        • I Uniswap V 2 Factory
        • I Uniswap V 2 Pair
        • I Uniswap V 2 Router 02
        • Safe Math
        • Uniswap V 2 Library
      • Backend Price Provider
      • Chainlink Price Provider
      • Price Provider
      • Uniswap V 2 Price Provider
    • Price Provider Aggregator
  • Util
    • Bondtroller Error Reporter
    • Careful Math
    • Exponential
    • Exponential No Error
    • Token Error Reporter
  • Console
  • Index
  • Primary Index Token
  • Primary Lending Platform Proxy Admin
Powered by GitBook
On this page
  • Methods
  • authorizeOperator
  • balanceOf
  • burn
  • defaultOperators
  • granularity
  • isOperatorFor
  • name
  • operatorBurn
  • operatorSend
  • revokeOperator
  • send
  • symbol
  • totalSupply
  • Events
  • AuthorizedOperator
  • Burned
  • Minted
  • RevokedOperator
  • Sent
  1. Openzeppelin
  2. Contracts
  3. Token
  4. ERC 777

IERC 777

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}.

Methods

authorizeOperator

function authorizeOperator(address operator) external nonpayable

Make an account an operator of the caller. See {isOperatorFor}. Emits an {AuthorizedOperator} event. Requirements - operator cannot be calling address.

Parameters

Name
Type
Description

operator

address

undefined

balanceOf

function balanceOf(address owner) external view returns (uint256)

Returns the amount of tokens owned by an account (owner).

Parameters

Name
Type
Description

owner

address

undefined

Returns

Name
Type
Description

_0

uint256

undefined

burn

function burn(uint256 amount, bytes data) external nonpayable

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.

Parameters

Name
Type
Description

amount

uint256

undefined

data

bytes

undefined

defaultOperators

function defaultOperators() external view returns (address[])

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.

Returns

Name
Type
Description

_0

address[]

undefined

granularity

function granularity() external view returns (uint256)

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.

Returns

Name
Type
Description

_0

uint256

undefined

isOperatorFor

function isOperatorFor(address operator, address tokenHolder) external view returns (bool)

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}.

Parameters

Name
Type
Description

operator

address

undefined

tokenHolder

address

undefined

Returns

Name
Type
Description

_0

bool

undefined

name

function name() external view returns (string)

Returns the name of the token.

Returns

Name
Type
Description

_0

string

undefined

operatorBurn

function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData) external nonpayable

Destroys 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 least amount tokens. - the caller must be an operator for account.

Parameters

Name
Type
Description

account

address

undefined

amount

uint256

undefined

data

bytes

undefined

operatorData

bytes

undefined

operatorSend

function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData) external nonpayable

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 least amount 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.

Parameters

Name
Type
Description

sender

address

undefined

recipient

address

undefined

amount

uint256

undefined

data

bytes

undefined

operatorData

bytes

undefined

revokeOperator

function revokeOperator(address operator) external nonpayable

Revoke an account's operator status for the caller. See {isOperatorFor} and {defaultOperators}. Emits a {RevokedOperator} event. Requirements - operator cannot be calling address.

Parameters

Name
Type
Description

operator

address

undefined

send

function send(address recipient, uint256 amount, bytes data) external nonpayable

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.

Parameters

Name
Type
Description

recipient

address

undefined

amount

uint256

undefined

data

bytes

undefined

symbol

function symbol() external view returns (string)

Returns the symbol of the token, usually a shorter version of the name.

Returns

Name
Type
Description

_0

string

undefined

totalSupply

function totalSupply() external view returns (uint256)

Returns the amount of tokens in existence.

Returns

Name
Type
Description

_0

uint256

undefined

Events

AuthorizedOperator

event AuthorizedOperator(address indexed operator, address indexed tokenHolder)

Parameters

Name
Type
Description

operator indexed

address

undefined

tokenHolder indexed

address

undefined

Burned

event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData)

Parameters

Name
Type
Description

operator indexed

address

undefined

from indexed

address

undefined

amount

uint256

undefined

data

bytes

undefined

operatorData

bytes

undefined

Minted

event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData)

Parameters

Name
Type
Description

operator indexed

address

undefined

to indexed

address

undefined

amount

uint256

undefined

data

bytes

undefined

operatorData

bytes

undefined

RevokedOperator

event RevokedOperator(address indexed operator, address indexed tokenHolder)

Parameters

Name
Type
Description

operator indexed

address

undefined

tokenHolder indexed

address

undefined

Sent

event Sent(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData)

Parameters

Name
Type
Description

operator indexed

address

undefined

from indexed

address

undefined

to indexed

address

undefined

amount

uint256

undefined

data

bytes

undefined

operatorData

bytes

undefined

PreviousERC 777 Preset Fixed SupplyNextIERC 777 Recipient

Last updated 3 years ago