@layerzerolabs/oapp-evm-upgradeable
Version:
LayerZero Labs reference EVM OmniChain Application (OApp) implementation
1 lines • 36.7 kB
JSON
{"abi":[{"type":"function","name":"assertHeader","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_localEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getAppUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"hashLookup","inputs":[{"name":"headerHash","type":"bytes32","internalType":"bytes32"},{"name":"payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"dvn","type":"address","internalType":"address"}],"outputs":[{"name":"submitted","type":"bool","internalType":"bool"},{"name":"confirmations","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultUlnConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","inputs":[{"name":"_config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]},{"name":"_headerHash","type":"bytes32","internalType":"bytes32"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"DefaultUlnConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PayloadVerified","inputs":[{"name":"dvn","type":"address","indexed":false,"internalType":"address"},{"name":"header","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"confirmations","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proofHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"UlnConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"anonymous":false},{"type":"error","name":"LZ_ULN_AtLeastOneDVN","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidConfirmations","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidEid","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidPacketHeader","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidPacketVersion","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_Unsorted","inputs":[]},{"type":"error","name":"LZ_ULN_UnsupportedEid","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_ULN_Verifying","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"assertHeader(bytes,uint32)":"c40ff835","getAppUlnConfig(address,uint32)":"39e3f938","getUlnConfig(address,uint32)":"43ea4fa9","hashLookup(bytes32,bytes32,address)":"3c782a52","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":"29460b0b","transferOwnership(address)":"f2fde38b","verifiable((uint64,uint8,uint8,uint8,address[],address[]),bytes32,bytes32)":"e084d952"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ULN_AtLeastOneDVN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidPacketHeader\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidPacketVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidRequiredDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Unsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Verifying\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultUlnConfigsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dvn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"header\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proofHash\",\"type\":\"bytes32\"}],\"name\":\"PayloadVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UlnConfigSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_localEid\",\"type\":\"uint32\"}],\"name\":\"assertHeader\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getAppUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"dvn\",\"type\":\"address\"}],\"name\":\"hashLookup\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultUlnConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"_config\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_headerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"includes the utility functions for checking ULN states and logics\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAppUlnConfig(address,uint32)\":{\"details\":\"Get the uln config without the default config for the given remoteEid.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])\":{\"details\":\"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":\"ReceiveUlnBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ULN_AtLeastOneDVN"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidConfirmations"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidEid"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidPacketHeader"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidPacketVersion"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_Unsorted"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"LZ_ULN_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_ULN_Verifying"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}],"indexed":false}],"type":"event","name":"DefaultUlnConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"dvn","type":"address","indexed":false},{"internalType":"bytes","name":"header","type":"bytes","indexed":false},{"internalType":"uint256","name":"confirmations","type":"uint256","indexed":false},{"internalType":"bytes32","name":"proofHash","type":"bytes32","indexed":false}],"type":"event","name":"PayloadVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}],"indexed":false}],"type":"event","name":"UlnConfigSet","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"uint32","name":"_localEid","type":"uint32"}],"stateMutability":"pure","type":"function","name":"assertHeader"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAppUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"headerHash","type":"bytes32"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"internalType":"address","name":"dvn","type":"address"}],"stateMutability":"view","type":"function","name":"hashLookup","outputs":[{"internalType":"bool","name":"submitted","type":"bool"},{"internalType":"uint64","name":"confirmations","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultUlnConfigs"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"struct UlnConfig","name":"_config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]},{"internalType":"bytes32","name":"_headerHash","type":"bytes32"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getAppUlnConfig(address,uint32)":{"details":"Get the uln config without the default config for the given remoteEid."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":{"details":"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":"ReceiveUlnBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":21}