You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.2 KiB
Solidity

//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);
}