Technical Reference

VirtualDisk

Source updated:
Last updated:
Source Revision 0xbdf041df…a8f2d4
Property Value
Source Revision 0xbdf041df4007555af4305f34fe7fc3700ace4bca5c66929a8bc1e6b4f3a8f2d4
Source URL https://raw.githubusercontent.com/busytoby/atropa_pulsechain/8da1e650f7efb81f62bbfe0fdeafdaa5c2491396/solidity/dysnomia/VirtualDisk.sol
Source commit 8da1e650f7efb81f62bbfe0fdeafdaa5c2491396
Source Status Source snapshot; source hashes do not establish deployed bytecode equivalence.
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 0xdb673cc3e68816325d65c48b60271b694c40061dd725620db2243e4bdab949d4
Compilation Closure Files 2
Hash Generated 2026-09-17T19:13:18.859896+00:00

Stores 256-byte sectors by logical block address, with public reads and owner-controlled writes.

  • Kind: Contract
  • License: Sharia
  • Solidity: ^0.8.21
  • Source: VirtualDisk.sol
Contract addressNot currently resolved
  1. self — VirtualDisk
  2. MultiOwnable
Variable Type Visibility Mutability Initial Value NatSpec
_sectors mapping(uint256 => bytes32[8]) private mutable ``
blockCount uint256 public mutable ``
Event Parameters Anonymous NatSpec
SectorUpdated uint256 indexed lba, bytes32[8] data no
constructorconstructor
constructor() MultiOwnable(msg.sender)
  • Modifiers: MultiOwnable(msg.sender)
readSectorfunction
function readSector(uint256 lba) external view returns (bytes32[8] memory sectorData)

A callable deployment has not been resolved for this reference.

  • Visibility: external
  • State Mutability: view
  • Parameters: uint256 lba
  • Returns: bytes32[8] memory sectorData
  • NatSpec: Read a 256-byte sector payload by its LBA.
writeSectorfunction
function writeSector(uint256 lba, bytes32[8] calldata sectorData) external onlyOwners

A callable deployment has not been resolved for this reference.

  • Visibility: external
  • Modifiers: onlyOwners
  • Parameters: uint256 lba, bytes32[8] calldata sectorData
  • NatSpec: Write a 256-byte sector payload. Only callable by the controller or disk owner.

Public and external functions below are callable through this contract’s address. Parent links identify where each member is defined.

External & Public Functions

ownerfunction
function owner() external view virtual returns (address)

A callable deployment has not been resolved for this reference.

  • Visibility: external
  • State Mutability: view
  • Virtual: yes
  • Returns: address
ownerfunction
function owner(address cOwner) public view virtual returns (bool)

A callable deployment has not been resolved for this reference.

  • Visibility: public
  • State Mutability: view
  • Virtual: yes
  • Parameters: address cOwner
  • Returns: bool
renounceOwnershipfunction
function renounceOwnership(address toRemove) public virtual onlyOwners

A callable deployment has not been resolved for this reference.

  • Visibility: public
  • Virtual: yes
  • Modifiers: onlyOwners
  • Parameters: address toRemove
addOwnerfunction
function addOwner(address newOwner) public virtual onlyOwners

A callable deployment has not been resolved for this reference.

  • Visibility: public
  • Virtual: yes
  • Modifiers: onlyOwners
  • Parameters: address newOwner

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)
Inherited functions and getters (1)
VirtualDisk.blockCount()Read

A callable deployment has not been resolved for this reference.

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": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": "newOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "bool",
"name": "state",
"type": "bool"
}
],
"name": "OwnershipUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "lba",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32[8]",
"name": "data",
"type": "bytes32[8]"
}
],
"name": "SectorUpdated",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "addOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "blockCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "uint256",
"name": "lba",
"type": "uint256"
}
],
"name": "readSector",
"outputs": [
{
"internalType": "bytes32[8]",
"name": "sectorData",
"type": "bytes32[8]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "toRemove",
"type": "address"
}
],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "lba",
"type": "uint256"
},
{
"internalType": "bytes32[8]",
"name": "sectorData",
"type": "bytes32[8]"
}
],
"name": "writeSector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]