interface ILightNode{
event UpdateBlockHeader(address indexed account, uint256 indexed blockHeight);
//Verify the validity of the transaction according to the header, receipt, and aggPk
//The interface will be updated later to return logs
function verifyProofData(bytes memory _receiptProof)
external
returns (bool success, string memory message,bytes memory logsHash);
//Validate headers and update validation members
function updateBlockHeader(blockHeader memory bh,istanbulExtra memory ist, G2 memory aggPk) external;
//Initialize the first validator
function initialize(
//The total weight of votes
uint256 _threshold,
//committee members
address[] memory validators,
//G1 public key corresponding to the committee member
G1[] memory _pairKeys,
//Weights corresponding to committee members
uint256[] memory _weights,
//number of committees
uint epoch,
//The number of blocks corresponding to each committee
uint epochSize,
address verifyTool)
external;
function verifiableHeaderRange() external view returns (uint256, uint256);
}
interface ILightNode {
event UpdateBlockHeader(address indexed maintainer, uint256 indexed blockHeight);
function updateBlockHeader(bytes memory _blockHeader) external;
function updateLightClient(bytes memory _data) external;
// Verify the validity of the transaction according to the header, receipt
// The interface will be updated later to return logs
function verifyProofData(bytes memory _receiptProof) external view returns (bool success, string memory message, bytes memory logs);
// Get client state
function clientState() external view returns(bytes memory);
function finalizedState(bytes memory _data) external view returns(bytes memory);
function headerHeight() external view returns (uint256 height);
function verifiableHeaderRange() external view returns (uint256, uint256);
}