MAP
0xD3a7A95012Edd46Ea115c693B74c5e524b3DdA750x05d26d96…0df830Source details
| Property | Value |
|---|---|
| Keccak256 Hash | 0x05d26d96111aa3a1eb6ece52243ede25e33939b6cb23cc2d31ab8c8acc0df830 |
| Source URL | https://raw.githubusercontent.com/busytoby/atropa_pulsechain/58607494f7741b80525953e4a85bc99e66fd20fc/solidity/dysnomia/domain/map.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 | 0xf09c499fdf020a69e1af64fb9ca07da03d81ef43f49376c75599c77ea5f95b2a |
| Compilation Closure Files | 28 |
| Hash Generated | 2026-09-14T19:33:43Z |
Overview
Section titled “Overview”MAP is the geographic token registry that maps tokens to coordinates using the Hecke meridian system. It manages QING token creation and provides location-based lookup.
- Kind: Contract
- License: Sharia
- Solidity: ^0.8.21
- Source:
domain/map.sol
Inheritance Chain (C3 Linearized)
Section titled “Inheritance Chain (C3 Linearized)”- self — MAP
- DYSNOMIA
- MultiOwnable
Immediate Parents
Section titled “Immediate Parents”What This Means For Players
Section titled “What This Means For Players”Plain English Summary: MAP is the game world map - it assigns locations to every token/venue in the game. Every QING (venue) has a unique position on the map, like a latitude and longitude. When you explore the game, you’re navigating this map to find and visit different locations.
Real-World Analogy: Think of MAP like Google Maps for the Dysnomia game world. Every venue (QING) has a unique address on the map, and you can look up what’s at any location. When someone creates a new venue, MAP assigns it a unique spot on the world grid.
How It Affects Your Gameplay:
- Find venues - Use MAP to discover QINGs at specific coordinates
- Wrap tokens - Any token can become a venue (QING) with a map location
- Explore - Navigate the game world by coordinates
- Forbidden tokens - Some tokens may be blocked from becoming venues
State Variables
Section titled “State Variables”| Variable | Type | Visibility | Mutability | Initial Value | NatSpec |
|---|---|---|---|---|---|
Type |
string |
public | constant | MAP |
|
Cho |
CHOINTERFACE |
public | mutable | `` | |
Map |
HECKE |
public | mutable | `` | |
Offset |
uint256 |
public | mutable | `` | |
_qings |
mapping(address => address) |
private | mutable | `` | |
_waats |
mapping(uint256 => QING) |
private | mutable | `` | |
_forbidden |
mapping(address => bool) |
private | mutable | `` | |
_map |
mapping(int256 => mapping(int256 => address)) |
private | mutable | `` |
Events
Section titled “Events”| Event | Parameters | Anonymous | NatSpec |
|---|---|---|---|
NewQing |
address Qing, address Integrative, uint256 Waat | no |
Errors
Section titled “Errors”| Error | Parameters | NatSpec |
|---|---|---|
NotOwner |
address what, address who | |
QingAlreadyExists |
address Token, address Qing | |
DerivativeQing |
address Integrative, uint256 Waat | |
ForbiddenToken |
address which |
Constructor
Section titled “Constructor”constructor
Section titled “constructor”constructorconstructor
constructor(address ChoAddress, address HeckeAddress) DYSNOMIA("Dysnomia Map", "MAP", address(DYSNOMIA(ChoAddress).Xiao()))- Modifiers:
DYSNOMIA("Dysnomia Map", "MAP", address(DYSNOMIA(ChoAddress).Xiao())) - Parameters: address ChoAddress, address HeckeAddress
Functions
Section titled “Functions”External & Public
Section titled “External & Public”GetMapQing
Section titled “GetMapQing”GetMapQingfunction
function GetMapQing(int256 Latitude, int256 Longitude) public view returns (QINGINTERFACE)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Parameters: int256 Latitude, int256 Longitude
- Returns: QINGINTERFACE
hasOwner
Section titled “hasOwner”hasOwnerfunction
function hasOwner(address _contract) public view returns (bool does)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Parameters: address _contract
- Returns: bool does
hasfunction
function has(address _contract, string memory what) public view returns (bool does)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Parameters: address _contract, string memory what
- Returns: bool does
Forbidden
Section titled “Forbidden”Forbiddenfunction
function Forbidden(address Asset) public view returns (bool)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Parameters: address Asset
- Returns: bool
Forbid
Section titled “Forbid”Forbidfunction
function Forbid(address Token, bool Disallow) publicOpen this function to load its call form.
- Visibility: public
- Parameters: address Token, bool Disallow
GetQing
Section titled “GetQing”GetQingfunction
function GetQing(uint256 Waat) public view returns (QING)Open this function to load its call form.
- Visibility: public
- State Mutability: view
- Parameters: uint256 Waat
- Returns: QING
Newfunction
function New(address Integrative) public returns (QING Mu)Open this function to load its call form.
- Visibility: public
- Parameters: address Integrative
- Returns: QING Mu
Internal
Section titled “Internal”addToMap
Section titled “addToMap”addToMapfunction
function addToMap(uint256 Waat, address Qing) internal- Visibility: internal
- Parameters: uint256 Waat, address Qing
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 virtual 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 |
|---|---|
_addLibraryOwner |
function _addLibraryOwner(VOID Void, string memory what) internal |
_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 |
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”Depended On By
Section titled “Depended On By”Special Mechanisms
Section titled “Special Mechanisms”QING Creation
Section titled “QING Creation”function New(address Integrative) public returns(QING Mu) { // Check not already wrapped if(_qings[Integrative] != address(0x0)) revert QingAlreadyExists(...);
// Check not forbidden if(_forbidden[Integrative]) revert ForbiddenToken(Integrative);
// Check not already a QING if(has(Integrative, "Waat()")) revert DerivativeQing(...);
// Generate unique Waat Luo = Cho.Luo() * Offset;
// Create QING Mu = new QING(Luo, Integrative, address(Cho));
// Copy ownership and name if(has(Integrative, "owner()")) Mu.addOwner(Asset.owner()); if(has(Integrative, "name()") && has(Integrative, "symbol()")) Mu.Rename(Asset.name() + " QING", "q" + Asset.symbol());
// Register _qings[Integrative] = address(Mu); _waats[Luo] = Mu; addToMap(Luo, address(Mu));}WITHOUT Token Ban
Section titled “WITHOUT Token Ban”Holders of the WITHOUT token are automatically forbidden from all operations:
if(DYSNOMIA(WITHOUTContract).balanceOf(tx.origin) > 0) return true;Geographic Registration
Section titled “Geographic Registration”function addToMap(uint256 Waat, address Qing) internal { (int256 Longitude, int256 Latitude) = Map.Compliment(Waat); assert(_map[Latitude][Longitude] == address(0x0)); _map[Latitude][Longitude] = Qing;}Inherited functions and getters (25)
MAP.Cho()Read
Open this function to load its call form.
MAP.GetMarketRate(address _a)Read
Open this function to load its call form.
MAP.Map()Read
Open this function to load its call form.
MAP.MotzkinPrime()Read
Open this function to load its call form.
MAP.Offset()Read
Open this function to load its call form.
MAP.Purchase(address _t, uint256 _a)Simulate / call
Open this function to load its call form.
MAP.Redeem(address _t, uint256 _a)Simulate / call
Open this function to load its call form.
MAP.Rename(string newName, string newSymbol)Simulate / call
Open this function to load its call form.
MAP.Type()Read
Open this function to load its call form.
MAP.Xiao()Read
Open this function to load its call form.
MAP.addOwner(address newOwner)Simulate / call
Open this function to load its call form.
MAP.allowance(address owner, address spender)Read
Open this function to load its call form.
MAP.approve(address spender, uint256 value)Simulate / call
Open this function to load its call form.
MAP.balanceOf(address account)Read
Open this function to load its call form.
MAP.decimals()Read
Open this function to load its call form.
MAP.maxSupply()Read
Open this function to load its call form.
MAP.mintToCap()Simulate / call
Open this function to load its call form.
MAP.name()Read
Open this function to load its call form.
MAP.owner(address cOwner)Read
Open this function to load its call form.
MAP.owner()Read
Open this function to load its call form.
MAP.renounceOwnership(address toRemove)Simulate / call
Open this function to load its call form.
MAP.symbol()Read
Open this function to load its call form.
MAP.totalSupply()Read
Open this function to load its call form.
MAP.transfer(address to, uint256 value)Simulate / call
Open this function to load its call form.
MAP.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": "address", "name": "ChoAddress", "type": "address" }, { "internalType": "address", "name": "HeckeAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "Integrative", "type": "address" }, { "internalType": "uint256", "name": "Waat", "type": "uint256" } ], "name": "DerivativeQing", "type": "error" }, { "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": "which", "type": "address" } ], "name": "ForbiddenToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "MarketRateNotFound", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "what", "type": "address" }, { "internalType": "address", "name": "who", "type": "address" } ], "name": "NotOwner", "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" }, { "inputs": [ { "internalType": "address", "name": "Token", "type": "address" }, { "internalType": "address", "name": "Qing", "type": "address" } ], "name": "QingAlreadyExists", "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": false, "internalType": "address", "name": "Qing", "type": "address" }, { "indexed": false, "internalType": "address", "name": "Integrative", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "Waat", "type": "uint256" } ], "name": "NewQing", "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": [], "name": "Cho", "outputs": [ { "internalType": "contract CHOINTERFACE", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "Token", "type": "address" }, { "internalType": "bool", "name": "Disallow", "type": "bool" } ], "name": "Forbid", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "Asset", "type": "address" } ], "name": "Forbidden", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "int256", "name": "Latitude", "type": "int256" }, { "internalType": "int256", "name": "Longitude", "type": "int256" } ], "name": "GetMapQing", "outputs": [ { "internalType": "contract QINGINTERFACE", "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": [ { "internalType": "uint256", "name": "Waat", "type": "uint256" } ], "name": "GetQing", "outputs": [ { "internalType": "contract QING", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Map", "outputs": [ { "internalType": "contract HECKE", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MotzkinPrime", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "Integrative", "type": "address" } ], "name": "New", "outputs": [ { "internalType": "contract QING", "name": "Mu", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "Offset", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "Type", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": [ { "internalType": "address", "name": "_contract", "type": "address" }, { "internalType": "string", "name": "what", "type": "string" } ], "name": "has", "outputs": [ { "internalType": "bool", "name": "does", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" } ], "name": "hasOwner", "outputs": [ { "internalType": "bool", "name": "does", "type": "bool" } ], "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" }]