//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.0; interface IFileOperator { // Large storage methods function write(bytes memory name, bytes memory data) external payable; function read(bytes memory name) external view returns (bytes memory, bool); // return (size, # of chunks) function size(bytes memory name) external view returns (uint256, uint256); function remove(bytes memory name) external returns (uint256); function countChunks(bytes memory name) external view returns (uint256); // Chunk-based large storage methods function writeChunk( bytes memory name, uint256 chunkId, bytes memory data ) external payable; function readChunk(bytes memory name, uint256 chunkId) external view returns (bytes memory, bool); function chunkSize(bytes memory name, uint256 chunkId) external view returns (uint256, bool); function removeChunk(bytes memory name, uint256 chunkId) external returns (bool); function truncate(bytes memory name, uint256 chunkId) external returns (uint256); function refund() external; function destruct() external; function getChunkHash(bytes memory name, uint256 chunkId) external view returns (bytes32); }