35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
@subsection Seal
|
||
|
||
Some smart contract parameters may need to be mutable over part of a smart contract's lifetime.
|
||
|
||
This interface provides a method to explicitly signal when certain parameters have been rendered immutable.
|
||
|
||
The value of @code{sealState()} @emph{must not} decrease, and must not exceed @code{maxSealState}.
|
||
|
||
@code{maxSealState} is used to define that @emph{all mutable parameters} have been rendered immutable. The practical implications of this will vary between contracts.
|
||
|
||
The implementer is encouraged to use simple, descriptive names in the source code to describe the applicable seal states.
|
||
|
||
Use cases of sealing include:
|
||
|
||
@itemize
|
||
@item
|
||
Whether more tokens can be minted
|
||
@item
|
||
Allow ownership of a contract to be transferred
|
||
@item
|
||
The expiry time of a token (see @code{Expire})
|
||
@end itemize
|
||
|
||
@subsubsection ERC165 Interface identifier
|
||
|
||
@include ../../build/Seal.interface
|
||
|
||
@subsubsection Solidity interface definition
|
||
|
||
@include ../../build/contract_Seal.texi
|
||
|
||
@subsubsection Example implementation
|
||
|
||
@uref{https://git.grassecon.net/cicnet/erc20-demurrage-token.git}
|