Token Factory
The protocol provides a minimal factory to deploy standard ERC-20 tokens and register them with the Manager's standard token registry.
Contracts
TokenFactory.sol(creates standard tokens and marks them as standard inManager)WBStandardToken.sol(non-upgradeable, exact-transfer ERC-20 with immutable decimals)
TokenFactory
constructor(address manager);
event StandardTokenCreated(
address indexed token,
string name,
string symbol,
uint8 decimals,
uint256 initialSupply,
address recipient
);
function createStandardToken(
string calldata name,
string calldata symbol,
uint8 decimals_,
uint256 initialSupply,
address initialRecipient,
address initialOwner
) external returns (address token);Behavior:
Deploys a new
WBStandardTokenMints
initialSupplytoinitialRecipientTransfers ownership to
initialOwnerCalls
Manager.setStandardToken(token, true)Emits
StandardTokenCreated
WBStandardToken
constructor(
string memory name_,
string memory symbol_,
uint8 decimals_,
uint256 initialSupply,
address initialRecipient,
address initialOwner
);
function decimals() public view returns (uint8);Notes:
Exact-transfer ERC-20 (no fees, no hooks, no rebasing)
decimalsis immutable and returned via overrideOwnable: ownership set toinitialOwner
Manager Integration
Standard token registry and enforcement:
function setStandardToken(address token, bool isStandard) external onlyAdminRole;
function isStandardToken(address token) external view returns (bool);
function setEnforceStandardBaseOnRegister(bool enforce) external onlyAdminRole;
event StandardTokenUpdated(address indexed token, bool isStandard);
event StandardBaseEnforcementUpdated(bool oldEnforce, bool newEnforce);When enforcement is enabled, new OrderBooks must use a BASE token marked as standard.
Last updated