Aere Network public source. Everything here can be checked against the live chain (chain id 2800, https://rpc.aere.network). Scope note, stated up front rather than buried: consensus on chain 2800 is classical secp256k1 ECDSA QBFT. The post-quantum work in this repository is at the signature, precompile, account and transport layers. Nothing here makes the consensus post-quantum, and no document in it should be read as claiming so.
32 lines
964 B
Solidity
32 lines
964 B
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity 0.8.23;
|
|
|
|
import {IAereMessageHandler} from "../AereOutboundVerifier.sol";
|
|
|
|
/// @title MockAereMessageHandler
|
|
/// @notice Records the last delivered message so tests can assert exactly-once,
|
|
/// correct-args delivery. TEST-ONLY.
|
|
contract MockAereMessageHandler is IAereMessageHandler {
|
|
uint256 public lastSrcChainId;
|
|
address public lastSender;
|
|
bytes public lastPayload;
|
|
uint256 public callCount;
|
|
|
|
/// @notice When true, revert on delivery to test handler-failure propagation.
|
|
bool public shouldRevert;
|
|
|
|
function setShouldRevert(bool v) external {
|
|
shouldRevert = v;
|
|
}
|
|
|
|
function handleAereMessage(uint256 srcChainId, address sender, bytes calldata payload)
|
|
external
|
|
{
|
|
require(!shouldRevert, "handler: forced revert");
|
|
lastSrcChainId = srcChainId;
|
|
lastSender = sender;
|
|
lastPayload = payload;
|
|
callCount += 1;
|
|
}
|
|
}
|