mirror of git3://git3.w3q/git3-contract
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
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);
|
|
}
|