Common (Token)
This module provides extensions and utilities that are common to multiple token standards.
ERC2981
IERC2981
use openzeppelin_token::common::erc2981::IERC2981;
0x2d3414e45a8700c29f119a54b9f11dca0e29e06ddcb214018fc37340e165ed6
Interface of the ERC2981 standard as defined in EIP-2981.
ERC2981Component
use openzeppelin_token::common::erc2981::ERC2981Component;
ERC2981 component extending IERC2981.
FEE_DENOMINATOR: u128
constant
The denominator with which to interpret the fee set in
set_token_royalty
and set_default_royalty
as a fraction of the sale price.
validate()
internal
Validates the given implementation of the contract’s configuration.
Requirements:
-
FEE_DENOMINATOR
must be greater than 0.
This function is called by the contract’s initializer. |
royalty_info(@self: ContractState, token_id: u256, sale_price: u256) → (ContractAddress, u256)
external
Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.
The returned tuple contains:
-
t.0
: The receiver of the royalty payment. -
t.1
: The amount of royalty payment.
initializer(ref self: ContractState, default_receiver: ContractAddress, default_royalty_fraction: u128)
internal
Initializes the contract by setting the default royalty and registering the supported interface.
Requirements:
-
default_receiver
cannot be the zero address. -
default_royalty_fraction
cannot be greater than the fee denominator. -
The fee denominator must be greater than 0.
The fee denominator is set by the contract using the Immutable Component Config. |
default_royalty(self: @ContractState) → (ContractAddress, u128, u128)
internal
Returns the royalty information that all ids in this contract will default to.
The returned tuple contains:
-
t.0
: The receiver of the royalty payment. -
t.1
: The numerator of the royalty fraction. -
t.2
: The denominator of the royalty fraction.
set_default_royalty(ref self: ContractState, receiver: ContractAddress, fee_numerator: u128)
internal
Sets the royalty information that all ids in this contract will default to.
Requirements:
-
receiver
cannot be the zero address. -
fee_numerator
cannot be greater than the fee denominator.
token_royalty(self: @ContractState, token_id: u256) → (ContractAddress, u256, u256)
internal
Returns the royalty information that all ids in this contract will default to.
The returned tuple contains:
-
t.0
: The receiver of the royalty payment. -
t.1
: The numerator of the royalty fraction. -
t.2
: The denominator of the royalty fraction.
set_token_royalty(ref self: ContractState, token_id: u256, receiver: ContractAddress, fee_numerator: u128)
internal
Sets the royalty information for a specific token id, overriding the global default.
Requirements:
-
receiver
cannot be the zero address. -
fee_numerator
cannot be greater than the fee denominator.