LAU
0x9518e52b…1f5039Source details
| Property | Value |
|---|---|
| Keccak256 Hash | 0x9518e52b7177571e28f0cf0424df4be4f3bf268e80729e79650a3e77a91f5039 |
| Source URL | https://raw.githubusercontent.com/busytoby/atropa_pulsechain/58607494f7741b80525953e4a85bc99e66fd20fc/solidity/dysnomia/11_lau.sol |
| Source Revision | 58607494f7741b80525953e4a85bc99e66fd20fc |
| Source Status | Canonical source snapshot; deployed bytecode equivalence is only established where a deployment record says so. |
| Compiler | solc 0.8.21; optimizer enabled with 200 runs |
| Compiler Configuration | {"evmVersion":"compiler-default","optimizer":{"enabled":true,"runs":200},"version":"0.8.21+commit.d9974bed.Linux.g++"} |
| Compilation Closure Hash | 0x5c862ef46c844c3ef9d009e5eca91f6338fee07a82e57f356c030eb273ace86f |
| Compilation Closure Files | 17 |
| Hash Generated | 2026-09-14T19:33:41Z |
Overview
Section titled “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)
Section titled “Inheritance Chain (C3 Linearized)”- self — LAU
- DYSNOMIA
- MultiOwnable
Immediate Parents
Section titled “Immediate Parents”What This Means For Players
Section titled “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
Section titled “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
Section titled “Constructor”constructor
Section titled “constructor”constructorconstructor
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
Section titled “Functions”External & Public
Section titled “External & Public”Withdraw
Section titled “Withdraw”Withdrawfunction
function Withdraw(address what, uint256 amount) public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners - Parameters: address what, uint256 amount
Voidfunction
function Void(bool really1, bool really2) public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners - Parameters: bool really1, bool really2
Leavefunction
function Leave() public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners
Username
Section titled “Username”Usernamefunction
function Username() public view returns (string memory)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Returns: string memory
Username
Section titled “Username”Usernamefunction
function Username(string memory newUsername) public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners - Parameters: string memory newUsername
Chatfunction
function Chat(string memory chatline) public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners - Parameters: string memory chatline
Aliasfunction
function Alias(address name, string memory value) public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners - Parameters: address name, string memory value
Aliasfunction
function Alias(address name) public view onlyOwners returns (string memory)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Modifiers:
onlyOwners - Parameters: address name
- Returns: string memory
Aliasfunction
function Alias(Bao memory Theta, string memory value) public onlyOwnersOpen this function to load its call form.
- Visibility: public
- Modifiers:
onlyOwners - Parameters: Bao memory Theta, string memory value
Aliasfunction
function Alias(Bao memory Theta) public view onlyOwners returns (string memory)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Modifiers:
onlyOwners - Parameters: Bao memory Theta
- Returns: string memory
Inherited Members
Section titled “Inherited Members”This contract inherits the members below from its parents. See each parent’s dedicated MD for full signatures, NatSpec, and semantics.
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 |
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
Section titled “Contract Interactions”Depends On
Section titled “Depends On”Created By
Section titled “Created By”- LAUFactory - Factory for LAU creation
Depended On By
Section titled “Depended On By”- CHO - User authentication
- Domain contracts that interact with users
Constructor Logic
Section titled “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
Section titled “Special Mechanisms”User Token Pattern
Section titled “User Token Pattern”Each LAU instance represents a single user. The constructor:
- Calls VOID.Enter() to create a session
- Receives the Saat array and Bao
- Adds self as owner of the SHIO and Rod
Soul ID Access
Section titled “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
Section titled “Logging Pattern”Most write functions include logging:
Eta.Log(string.concat("Withdraw Of ", amount, " ", token, " To ", address));Void Reset
Section titled “Void Reset”The Void function requires two confirmation parameters to prevent accidental resets:
if(really1 && really2) (Saat, On) = Eta.Enter();Area Tracking
Section titled “Area Tracking”CurrentArea can be set by game contracts to track user location:
CurrentArea = address(someQing);Usage Pattern
Section titled “Usage Pattern”// Deploy via factoryLAU myToken = lauFactory.New("My Token", "MTKN");
// Set usernamemyToken.Username("Alice");
// ChatmyToken.Chat("Hello!");
// Withdraw tokensmyToken.Withdraw(tokenAddress, amount);
// Leave current areamyToken.Leave();
// Get user infouint64 soul = myToken.Saat(1);string memory name = myToken.Username();Security Considerations
Section titled “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
Inherited functions and getters (26)
LAU.CurrentArea()Read
Open this function to load its call form.
LAU.Eta()Read
Open this function to load its call form.
LAU.GetMarketRate(address _a)Read
Open this function to load its call form.
LAU.MotzkinPrime()Read
Open this function to load its call form.
LAU.On()Read
Open this function to load its call form.
LAU.Purchase(address _t, uint256 _a)Simulate / call
Open this function to load its call form.
LAU.Redeem(address _t, uint256 _a)Simulate / call
Open this function to load its call form.
LAU.Rename(string newName, string newSymbol)Simulate / call
Open this function to load its call form.
LAU.Saat(uint256)Read
Open this function to load its call form.
LAU.Type()Read
Open this function to load its call form.
LAU.Xiao()Read
Open this function to load its call form.
LAU.addOwner(address newOwner)Simulate / call
Open this function to load its call form.
LAU.allowance(address owner, address spender)Read
Open this function to load its call form.
LAU.approve(address spender, uint256 value)Simulate / call
Open this function to load its call form.
LAU.balanceOf(address account)Read
Open this function to load its call form.
LAU.decimals()Read
Open this function to load its call form.
LAU.maxSupply()Read
Open this function to load its call form.
LAU.mintToCap()Simulate / call
Open this function to load its call form.
LAU.name()Read
Open this function to load its call form.
LAU.owner(address cOwner)Read
Open this function to load its call form.
LAU.owner()Read
Open this function to load its call form.
LAU.renounceOwnership(address toRemove)Simulate / call
Open this function to load its call form.
LAU.symbol()Read
Open this function to load its call form.
LAU.totalSupply()Read
Open this function to load its call form.
LAU.transfer(address to, uint256 value)Simulate / call
Open this function to load its call form.
LAU.transferFrom(address from, address to, uint256 value)Simulate / call
Open this function to load its call form.
Compiled ABI
Section titled “Compiled ABI”The compiled ABI below is produced by solc 0.8.21 from the exact source bytes recorded in Source details. Consumers can paste it directly into ethers/web3/viem.
Click to expand JSON ABI
[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address", "name": "VoidAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "origin", "type": "address" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "address", "name": "what", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "DysnomiaInsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "origin", "type": "address" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "what", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "DysnomiaInsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "MarketRateNotFound", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "origin", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "what", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "origin", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "what", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "state", "type": "bool" } ], "name": "OwnershipUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "name", "type": "address" }, { "internalType": "string", "name": "value", "type": "string" } ], "name": "Alias", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "Phi", "type": "address" }, { "internalType": "contract SHA", "name": "Mu", "type": "address" }, { "internalType": "uint64", "name": "Xi", "type": "uint64" }, { "internalType": "uint64", "name": "Pi", "type": "uint64" }, { "internalType": "contract SHIO", "name": "Shio", "type": "address" }, { "internalType": "uint64", "name": "Ring", "type": "uint64" }, { "internalType": "uint64", "name": "Omicron", "type": "uint64" }, { "internalType": "uint64", "name": "Omega", "type": "uint64" } ], "internalType": "struct Bao", "name": "Theta", "type": "tuple" } ], "name": "Alias", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "Phi", "type": "address" }, { "internalType": "contract SHA", "name": "Mu", "type": "address" }, { "internalType": "uint64", "name": "Xi", "type": "uint64" }, { "internalType": "uint64", "name": "Pi", "type": "uint64" }, { "internalType": "contract SHIO", "name": "Shio", "type": "address" }, { "internalType": "uint64", "name": "Ring", "type": "uint64" }, { "internalType": "uint64", "name": "Omicron", "type": "uint64" }, { "internalType": "uint64", "name": "Omega", "type": "uint64" } ], "internalType": "struct Bao", "name": "Theta", "type": "tuple" }, { "internalType": "string", "name": "value", "type": "string" } ], "name": "Alias", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "name", "type": "address" } ], "name": "Alias", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "chatline", "type": "string" } ], "name": "Chat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "CurrentArea", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Eta", "outputs": [ { "internalType": "contract VOID", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_a", "type": "address" } ], "name": "GetMarketRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Leave", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "MotzkinPrime", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "On", "outputs": [ { "internalType": "address", "name": "Phi", "type": "address" }, { "internalType": "contract SHA", "name": "Mu", "type": "address" }, { "internalType": "uint64", "name": "Xi", "type": "uint64" }, { "internalType": "uint64", "name": "Pi", "type": "uint64" }, { "internalType": "contract SHIO", "name": "Shio", "type": "address" }, { "internalType": "uint64", "name": "Ring", "type": "uint64" }, { "internalType": "uint64", "name": "Omicron", "type": "uint64" }, { "internalType": "uint64", "name": "Omega", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_t", "type": "address" }, { "internalType": "uint256", "name": "_a", "type": "uint256" } ], "name": "Purchase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_t", "type": "address" }, { "internalType": "uint256", "name": "_a", "type": "uint256" } ], "name": "Redeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newName", "type": "string" }, { "internalType": "string", "name": "newSymbol", "type": "string" } ], "name": "Rename", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "Saat", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Type", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Username", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newUsername", "type": "string" } ], "name": "Username", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "really1", "type": "bool" }, { "internalType": "bool", "name": "really2", "type": "bool" } ], "name": "Void", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "what", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "Xiao", "outputs": [ { "internalType": "contract atropaMath", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintToCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "cOwner", "type": "address" } ], "name": "owner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "toRemove", "type": "address" } ], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }]