diff --git a/test/util/lib/LibTestConstants.sol b/test/util/lib/LibTestConstants.sol new file mode 100644 index 00000000..0f6f428a --- /dev/null +++ b/test/util/lib/LibTestConstants.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CAL +pragma solidity ^0.8.18; + +import "openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol"; + +/// @dev https://eips.ethereum.org/EIPS/eip-1820#single-use-registry-deployment-account +IERC1820Registry constant IERC1820_REGISTRY = IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24); + +/// @dev Mocks need to be etched with some bytecode or they cannot even be +/// called. This is because Solidity first checks the bytecode size before +/// calling, so it never even gets to the point that mocking logic can intercept +/// the call. We want all non-mocked calls to revert, so all mocks should be +/// etched with a revert opcode. +bytes constant REVERTING_MOCK_BYTECODE = hex"FD"; + +/// @dev Stub expression bytecode used for testing purposes. +/// This is a simple bytecode stub that can be used as a placeholder for +/// expressions with mock initialization in tests. The bytecode is arbitrary +bytes constant STUB_EXPRESSION_BYTECODE = hex"010000";