SHIO¶
Overview¶
SHIO (Paired Token System) combines two SHA tokens (Rod and Cone) into a cryptographically-bound pair. The pairing enables symmetric reactions and logging functionality for chat/messaging systems.
- Kind: Contract
- License: Sharia
- Solidity: ^0.8.21
- Source:
03_shio.sol
Inheritance Chain (C3 Linearized)¶
- self — SHIO
- DYSNOMIA
- MultiOwnable
Immediate Parents¶
What This Means For Players¶
Plain English Summary: SHIO is a paired lock system - like having two keys that must work together. It combines two SHA tokens (called Rod and Cone) into a cryptographically linked pair that powers your chat messages and identity verification. Your SHIO is what allows you to send messages and proves you're really you.
Real-World Analogy: Imagine a safe deposit box at a bank that requires two keys - the bank has one key, you have the other, and both must be used together to open the box. SHIO works similarly: the Rod and Cone are mathematically bound together, and both must "agree" for any action to be valid. This makes it extremely secure.
How It Affects Your Gameplay: - Chat messaging - Every chat message you send is logged through your SHIO - Symmetric verification - The Rod and Cone verify each other, preventing forgery - Reaction outputs - When you interact with venues or other players, SHIO produces unique outputs that track your activity
State Variables¶
| Variable | Type | Visibility | Mutability | Initial Value | NatSpec |
|---|---|---|---|---|---|
Type |
string |
public | constant | SHIO |
|
Rho |
Shao |
public | mutable | `` | |
Manifold |
uint64 |
public | mutable | `` | |
Monopole |
uint64 |
public | mutable | `` |
Events¶
| Event | Parameters | Anonymous | NatSpec |
|---|---|---|---|
LogEvent |
uint64 Soul, uint64 Aura, string LogLine | no |
Errors¶
| Error | Parameters | NatSpec |
|---|---|---|
ManifoldInequality |
uint64 Manifold | |
RingInequality |
uint64 Ring | |
BarnInequality |
uint64 Barn | |
ReactionZeroError |
uint64 Eta, uint64 Kappa | |
ReactionInequalityError |
uint64 Eta, uint64 Kappa |
Constructor¶
constructor¶
constructor(address RodAddress, address ConeAddress, address MathLib) DYSNOMIA(unicode"CHATLOG Shio", unicode"SHIO", MathLib)
- Modifiers:
DYSNOMIA(unicode"CHATLOG Shio", unicode"SHIO", MathLib) - Parameters: address RodAddress, address ConeAddress, address MathLib
Functions¶
External & Public¶
Log¶
- Visibility: public
- Modifiers:
onlyOwners - Parameters: uint64 Soul, uint64 Aura, string memory LogLine
Rod¶
- Visibility: public
- State Mutability: view
- Returns: SHA
Cone¶
- Visibility: public
- State Mutability: view
- Returns: SHA
Generate¶
- Visibility: public
- Modifiers:
onlyOwners - Parameters: uint64 Xi, uint64 Alpha, uint64 Beta
Isomerize¶
- Visibility: public
- Modifiers:
onlyOwners
Isolate¶
- Visibility: public
- Modifiers:
onlyOwners
Magnetize¶
- Visibility: public
- Modifiers:
onlyOwners - Returns: uint64
React¶
- Visibility: public
- Parameters: uint64 Pi
- Returns: uint64, uint64
Internal¶
Augment¶
- Visibility: internal
Private¶
ConductorGenerate¶
- Visibility: private
- Parameters: uint64 Xi
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¶
Depended On By¶
- SHIOFactory - Creates SHIO instances
- YI - Uses SHIO for DeFi operations
- Bao - References SHIO in operations
Special Mechanisms¶
ConductorGenerate¶
Private function that: 1. Calls Avail on both Rod and Cone with Xi 2. Calls Form on each with the other's Contour (cross-linking) 3. Polarizes both tokens
Symmetric Pairing Verification¶
Magnetize() includes three equality assertions: - Manifold computed from Rod must equal Manifold from Cone - Ring values must match - Barn values must match
This ensures proper cryptographic pairing.
React Symmetry¶
The React function verifies that reacting on Rod with Cone's Channel produces the same result as reacting on Cone with Rod's Channel (transposed). This symmetric property is essential for message encryption/verification.
Usage Pattern¶
// Creation via factory
SHIO shio = SHIOFactory.New(rodAddr, coneAddr, mathAddr);
// Initialization
shio.Generate(xi, alpha, beta);
shio.Isomerize();
shio.Isolate();
uint64 ring = shio.Magnetize();
// Usage
(uint64 omicron, uint64 omega) = shio.React(inputValue);
shio.Log(soul, aura, "Hello World");
Contract Verification¶
| Property | Value |
|---|---|
| Keccak256 Hash | 0xfcb03144ff9a373458124e215f2655545d3cce0652b334257eceaaa02a315b64 |
| Source URL | https://raw.githubusercontent.com/busytoby/atropa_pulsechain/main/solidity/dysnomia/03_shio.sol |
| Hash Generated | 2026-04-17T20:48:07Z |