Some important constants used in the LZ public API aren't exposed by LZ Solidity files. For example CONFIG_TYPE_ULN and NIL_DVN_COUNT are internal despite being crucial when calling IMessageLibManager.setConfig from a smart contract.
LayerZero-v2/messagelib/test/util/Constant.sol is a great resource, maybe it could be moved out of the scary test directory? It could be used in the contracts as the source of constants.
Some important constants used in the LZ public API aren't exposed by LZ Solidity files. For example
CONFIG_TYPE_ULN
andNIL_DVN_COUNT
areinternal
despite being crucial when callingIMessageLibManager.setConfig
from a smart contract.LayerZero-v2/messagelib/test/util/Constant.sol
is a great resource, maybe it could be moved out of the scarytest
directory? It could be used in the contracts as the source of constants.