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
WBStandardToken
Mints
initialSupply
toinitialRecipient
Transfers ownership to
initialOwner
Calls
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)
decimals
is 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