Skip to content

LAU

Overview

LAU is the user interface layer contract that provides a personal token for each user. It wraps VOID functionality with user-specific context and manages withdrawals, chat, aliases, and area tracking.

  • Kind: Contract
  • License: Sharia
  • Solidity: ^0.8.21
  • Source: 11_lau.sol

Inheritance Chain (C3 Linearized)

  1. selfLAU
  2. DYSNOMIA
  3. MultiOwnable

Immediate Parents

What This Means For Players

Plain English Summary: LAU is YOUR player account - your personal wallet, identity, and interface to the entire Dysnomia game. When you join Dysnomia, you create a LAU token that represents you. Through your LAU, you can chat, withdraw earnings, set your username, and interact with the game world.

Real-World Analogy: Think of LAU as your player profile in a video game combined with your crypto wallet. It's like your Steam account, Xbox Gamertag, or Discord profile - but also holds your in-game currencies and lets you interact with other players and venues.

What You Can Do With Your LAU: - Chat - Send messages to venues and other players - Withdraw tokens - Move earnings from your LAU to your wallet - Set your username - Choose how other players see you - Create aliases - Give nicknames to other addresses for easy reference - Track your location - Know which venue (QING) you're currently in - Access your identity - Your Soul ID (unique player number) and Aura (identity fingerprint)

State Variables

Variable Type Visibility Mutability Initial Value NatSpec
Type string public constant LAU
Eta VOID public mutable ``
Saat uint64[3] public mutable ``
On Bao public mutable ``
CurrentArea address public mutable ``

Constructor

constructor

constructor(string memory name, string memory symbol, address VoidAddress) DYSNOMIA(name, symbol, address(DYSNOMIA(VoidAddress).Xiao()))
  • Modifiers: DYSNOMIA(name, symbol, address(DYSNOMIA(VoidAddress).Xiao()))
  • Parameters: string memory name, string memory symbol, address VoidAddress

Functions

External & Public

Withdraw

function Withdraw(address what, uint256 amount) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: address what, uint256 amount

Void

function Void(bool really1, bool really2) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: bool really1, bool really2

Leave

function Leave() public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners

Username

function Username() public view returns (string memory)
  • Visibility: public
  • State Mutability: view
  • Returns: string memory

Username

function Username(string memory newUsername) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: string memory newUsername

Chat

function Chat(string memory chatline) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: string memory chatline

Alias

function Alias(address name, string memory value) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: address name, string memory value

Alias

function Alias(address name) public view onlyOwners returns (string memory)
  • Visibility: public
  • State Mutability: view
  • Modifiers: onlyOwners
  • Parameters: address name
  • Returns: string memory

Alias

function Alias(Bao memory Theta, string memory value) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: Bao memory Theta, string memory value

Alias

function Alias(Bao memory Theta) public view onlyOwners returns (string memory)
  • Visibility: public
  • State Mutability: view
  • Modifiers: onlyOwners
  • Parameters: Bao memory Theta
  • Returns: string memory

Inherited Members

This contract inherits the members below from its parents. See each parent's dedicated MD for full signatures, NatSpec, and semantics.

From DYSNOMIA

External & Public Functions

Function Signature State Mutability
Rename function Rename(string memory newName, string memory newSymbol) public onlyOwners nonpayable
mintToCap function mintToCap() public onlyOwners nonpayable
GetMarketRate function GetMarketRate(address _a) public view returns (uint256) view
Purchase function Purchase(address _t, uint256 _a) public nonpayable
Redeem function Redeem(address _t, uint256 _a) public nonpayable
name function name() public view virtual returns (string memory) view
symbol function symbol() public view virtual returns (string memory) view
decimals function decimals() public view virtual returns (uint8) view
totalSupply function totalSupply() public view virtual returns (uint256) view
balanceOf function balanceOf(address account) public view virtual returns (uint256) view
transfer function transfer(address to, uint256 value) public virtual returns (bool) nonpayable
allowance function allowance(address owner, address spender) public view virtual returns (uint256) view
approve function approve(address spender, uint256 value) public virtual returns (bool) nonpayable
transferFrom function transferFrom(address from, address to, uint256 value) public virtual returns (bool) nonpayable

Internal Functions

Function Signature
_mintToCap function _mintToCap() internal
AddMarketRate function AddMarketRate(address _a, uint256 _r) internal
_transfer function _transfer(address from, address to, uint256 value) internal
_update function _update(address from, address to, uint256 value) internal virtual
_mint function _mint(address account, uint256 value) internal
_approve function _approve(address owner, address spender, uint256 value) internal
_spendAllowance function _spendAllowance(address owner, address spender, uint256 value) internal virtual
log10 function log10(uint256 value) internal pure returns (uint256)
String function String(uint256 value) internal pure returns (string memory buffer)
Hex function Hex(address account) internal pure returns (string memory)

Events

Event Parameters
Transfer address indexed from, address indexed to, uint256 value
Approval address indexed owner, address indexed spender, uint256 value

Errors

Error Parameters
MarketRateNotFound address asset
DysnomiaInsufficientBalance address origin, address sender, address from, address to, address what, uint256 balance, uint256 needed
DysnomiaInsufficientAllowance address origin, address sender, address owner, address spender, address what, uint256 allowance, uint256 needed

State Variables (private parent storage is not reachable and is omitted)

Variable Type Visibility Mutability
__name string internal mutable
__symbol string internal mutable
MotzkinPrime uint64 public constant
Xiao atropaMath public mutable
maxSupply uint256 public mutable

From MultiOwnable

External & Public Functions

Function Signature State Mutability
owner function owner() external view virtual returns (address) view
renounceOwnership function renounceOwnership(address toRemove) public virtual onlyOwners nonpayable
addOwner function addOwner(address newOwner) public virtual onlyOwners nonpayable

Internal Functions

Function Signature
_checkOwner function _checkOwner() internal view virtual
_changeOwnership function _changeOwnership(address cOwner, bool cState) internal virtual

Events

Event Parameters
OwnershipUpdate address indexed newOwner, bool indexed state

Errors

Error Parameters
OwnableUnauthorizedAccount address origin, address account, address what
OwnableInvalidOwner address origin, address owner, address what

Modifiers

Modifier Parameters
onlyOwners (none)

Contract Interactions

Depends On

  • DYSNOMIA - Base token functionality
  • VOID - Session management

Created By

Depended On By

  • CHO - User authentication
  • Domain contracts that interact with users

Constructor Logic

constructor(name, symbol, VoidAddress) {
    Eta = VOID(VoidAddress);

    // Enter via VOID (creates user session)
    (Saat, On) = Eta.Enter(name, symbol);

    // Add ownership to the SHIO and Rod
    On.Shio.addOwner(address(this));
    On.Shio.Rho().Rod.addOwner(address(this));
}

Special Mechanisms

User Token Pattern

Each LAU instance represents a single user. The constructor: 1. Calls VOID.Enter() to create a session 2. Receives the Saat array and Bao 3. Adds self as owner of the SHIO and Rod

Soul ID Access

The Soul ID is stored at Saat[1] and used throughout the system to identify the user:

uint64 soul = lau.Saat(1);

Logging Pattern

Most write functions include logging:

Eta.Log(string.concat("Withdraw Of ", amount, " ", token, " To ", address));

Void Reset

The Void function requires two confirmation parameters to prevent accidental resets:

if(really1 && really2) (Saat, On) = Eta.Enter();

Area Tracking

CurrentArea can be set by game contracts to track user location:

CurrentArea = address(someQing);

Usage Pattern

// Deploy via factory
LAU myToken = lauFactory.New("My Token", "MTKN");

// Set username
myToken.Username("Alice");

// Chat
myToken.Chat("Hello!");

// Withdraw tokens
myToken.Withdraw(tokenAddress, amount);

// Leave current area
myToken.Leave();

// Get user info
uint64 soul = myToken.Saat(1);
string memory name = myToken.Username();

Security Considerations

  • Most functions are protected by onlyOwners
  • The LAU owner is the user who created it
  • SHIO and Rod ownership is shared between LAU and user
  • Void reset requires double confirmation





Contract Verification

Property Value
Keccak256 Hash 0x9518e52b7177571e28f0cf0424df4be4f3bf268e80729e79650a3e77a91f5039
Source URL https://raw.githubusercontent.com/busytoby/atropa_pulsechain/main/solidity/dysnomia/11_lau.sol
Hash Generated 2026-04-17T20:48:08Z