false
true
0
PulseChain Testnet v4
Blockchain
Blocks
Blocks
Uncles
Forked Blocks (Reorgs)
Transactions
Confirmed
Pending
Verified contracts
Tokens
All
tPLS
APIs
GraphQL
RPC
Eth RPC
Apps
Testnet V4 Beacon Explorer
PulseX
PulseChain Bridge
Testnet V4 Faucet
Become a Validator
PulseChain
Testnets
Testnet V4
/
Search
/
Search
Connection Lost
New Solidity Smart Contract Verification
Contract Address
The 0x address supplied on contract creation.
Is Yul contract
No
Yes
Select Yes if you want to verify Yul contract.
Contract Name
Must match the name specified in the code. For example, in
contract MyContract {..}
MyContract
is the contract name.
Include nightly builds
No
Yes
Select yes if you want to show nightly builds.
Compiler
The compiler version is specified in
pragma solidity X.X.X
. Use the compiler version rather than the nightly build. If using the Solidity compiler, run
solc —version
to check.
EVM Version
homestead
tangerineWhistle
spuriousDragon
byzantium
constantinople
petersburg
istanbul
berlin
london
paris
shanghai
default
The EVM version the contract is written for. If the bytecode does not match the version, we try to verify using the latest EVM version.
EVM version details
.
Optimization
No
Yes
If you enabled optimization during compilation, select yes.
Optimization runs
Enter the Solidity Contract Code
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.0; /// @author thirdweb import "../interface/plugin/IPluginMap.sol"; import "../../openzeppelin-presets/utils/EnumerableSet.sol"; /** * @author thirdweb.com */ contract PluginMap is IPluginMap { using EnumerableSet for EnumerableSet.Bytes32Set; EnumerableSet.Bytes32Set private allSelectors; mapping(address => EnumerableSet.Bytes32Set) private selectorsForPlugin; mapping(bytes4 => Plugin) private pluginForSelector; /*/////////////////////////////////////////////////////////////// Constructor + initializer logic //////////////////////////////////////////////////////////////*/ constructor(Plugin[] memory _pluginsToAdd) { uint256 len = _pluginsToAdd.length; for (uint256 i = 0; i < len; i += 1) { _setPlugin(_pluginsToAdd[i]); } } /*/////////////////////////////////////////////////////////////// View functions //////////////////////////////////////////////////////////////*/ /// @dev View address of the plugged-in functionality contract for a given function signature. function getPluginForFunction(bytes4 _selector) public view returns (address) { address _pluginAddress = pluginForSelector[_selector].pluginAddress; require(_pluginAddress != address(0), "Map: No plugin available for selector"); return _pluginAddress; } /// @dev View all funtionality as list of function signatures. function getAllFunctionsOfPlugin(address _pluginAddress) external view returns (bytes4[] memory registered) { uint256 len = selectorsForPlugin[_pluginAddress].length(); registered = new bytes4[](len); for (uint256 i = 0; i < len; i += 1) { registered[i] = bytes4(selectorsForPlugin[_pluginAddress].at(i)); } } /// @dev View all funtionality existing on the contract. function getAllPlugins() external view returns (Plugin[] memory _plugins) { uint256 len = allSelectors.length(); _plugins = new Plugin[](len); for (uint256 i = 0; i < len; i += 1) { bytes4 selector = bytes4(allSelectors.at(i)); _plugins[i] = pluginForSelector[selector]; } } /*/////////////////////////////////////////////////////////////// Internal functions //////////////////////////////////////////////////////////////*/ /// @dev Add functionality to the contract. function _setPlugin(Plugin memory _plugin) internal { require(allSelectors.add(bytes32(_plugin.functionSelector)), "Map: Selector exists"); require( _plugin.functionSelector == bytes4(keccak256(abi.encodePacked(_plugin.functionSignature))), "Map: Incorrect selector" ); pluginForSelector[_plugin.functionSelector] = _plugin; selectorsForPlugin[_plugin.pluginAddress].add(bytes32(_plugin.functionSelector)); emit PluginSet(_plugin.functionSelector, _plugin.functionSignature, _plugin.pluginAddress); } }
We recommend using flattened code. This is necessary if your code utilizes a library or inherits dependencies. Use the
POA solidity flattener or the
truffle flattener
.
Try to fetch constructor arguments automatically
No
Yes
ABI-encoded Constructor Arguments (if required by the contract)
0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000740000000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000008e000000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000ae00000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000c600000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000de00000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f60000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000001140000000000000000000000000000000000000000000000000000000000000122000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000014c00000000000000000000000000000000000000000000000000000000000001560000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016e00000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000182000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000019600000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001c6048dd77df000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000002c617070726f76654275796572466f724c697374696e672875696e743235362c616464726573732c626f6f6c290000000000000000000000000000000000000000ea8f9a3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d70000000000000000000000000000000000000000000000000000000000000032617070726f766543757272656e6379466f724c697374696e672875696e743235362c616464726573732c75696e74323536290000000000000000000000000000704232dc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000003762757946726f6d4c697374696e672875696e743235362c616464726573732c75696e743235362c616464726573732c75696e7432353629000000000000000000305a67a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000001663616e63656c4c697374696e672875696e743235362900000000000000000000746415b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000004d6372656174654c697374696e672828616464726573732c75696e743235362c75696e743235362c616464726573732c75696e743235362c75696e743132382c75696e743132382c626f6f6c292900000000000000000000000000000000000000fb14079d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000002863757272656e63795072696365466f724c697374696e672875696e743235362c6164647265737329000000000000000000000000000000000000000000000000c5275fb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000001f676574416c6c4c697374696e67732875696e743235362c75696e74323536290031654b4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d70000000000000000000000000000000000000000000000000000000000000024676574416c6c56616c69644c697374696e67732875696e743235362c75696e743235362900000000000000000000000000000000000000000000000000000000107a274a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d700000000000000000000000000000000000000000000000000000000000000136765744c697374696e672875696e7432353629000000000000000000000000009cfbe2a6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000002a69734275796572417070726f766564466f724c697374696e672875696e743235362c616464726573732900000000000000000000000000000000000000000000a8519047000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000002d697343757272656e6379417070726f766564466f724c697374696e672875696e743235362c6164647265737329000000000000000000000000000000000000004a36e5f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000004373656c6563744c697374696e67732875696e743235362c75696e74382c616464726573732c616464726573732c75696e743235362c75696e7433322c75696e743332290000000000000000000000000000000000000000000000000000000000c78b616c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d7000000000000000000000000000000000000000000000000000000000000000f746f74616c4c697374696e67732829000000000000000000000000000000000007b67758000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c0435e4281511daa0390434b5114c71c340f23d700000000000000000000000000000000000000000000000000000000000000557570646174654c697374696e672875696e743235362c28616464726573732c75696e743235362c75696e743235362c616464726573732c75696e743235362c75696e743132382c75696e743132382c626f6f6c292900000000000000000000000858e5ad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001d626964496e41756374696f6e2875696e743235362c75696e743235362900000096b5a75500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001663616e63656c41756374696f6e2875696e743235362900000000000000000000ebf05a6200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001d636f6c6c65637441756374696f6e5061796f75742875696e743235362900000003a54fe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001d636f6c6c65637441756374696f6e546f6b656e732875696e743235362900000016654d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000005c63726561746541756374696f6e2828616464726573732c75696e743235362c75696e743235362c616464726573732c75696e743235362c75696e743235362c75696e7436342c75696e7436342c75696e7436342c75696e743634292900000000c291537c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001f676574416c6c41756374696f6e732875696e743235362c75696e7432353629007b06380100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b0000000000000000000000000000000000000000000000000000000000000024676574416c6c56616c696441756374696f6e732875696e743235362c75696e74323536290000000000000000000000000000000000000000000000000000000078bd793500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001367657441756374696f6e2875696e7432353629000000000000000000000000006891939d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000001667657457696e6e696e674269642875696e7432353629000000000000000000001389b11700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b0000000000000000000000000000000000000000000000000000000000000019697341756374696f6e457870697265642875696e7432353629000000000000002eb566bd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000002069734e657757696e6e696e674269642875696e743235362c75696e7432353629233c23c900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000004373656c65637441756374696f6e732875696e743235362c75696e74382c616464726573732c616464726573732c75696e743235362c75696e7433322c75696e74333229000000000000000000000000000000000000000000000000000000000016002f4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000009fa89f89aa2d49a210dbdcc0231cde50d6c292b000000000000000000000000000000000000000000000000000000000000000f746f74616c41756374696f6e7328290000000000000000000000000000000000c815729d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e700000000000000000000000000000000000000000000000000000000000000146163636570744f666665722875696e7432353629000000000000000000000000ef706adf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e7000000000000000000000000000000000000000000000000000000000000001463616e63656c4f666665722875696e7432353629000000000000000000000000c1edcfbe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e7000000000000000000000000000000000000000000000000000000000000001d676574416c6c4f66666572732875696e743235362c75696e743235362900000091940b3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e70000000000000000000000000000000000000000000000000000000000000022676574416c6c56616c69644f66666572732875696e743235362c75696e74323536290000000000000000000000000000000000000000000000000000000000004579268a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e700000000000000000000000000000000000000000000000000000000000000116765744f666665722875696e7432353629000000000000000000000000000000016767fa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e7000000000000000000000000000000000000000000000000000000000000003c6d616b654f666665722828616464726573732c75696e743235362c75696e743235362c616464726573732c75696e743235362c75696e7432353629290000000016a29807000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e7000000000000000000000000000000000000000000000000000000000000004173656c6563744f66666572732875696e743235362c75696e74382c616464726573732c616464726573732c75696e743235362c75696e7433322c75696e7433322900000000000000000000000000000000000000000000000000000000000000a9fd8ed1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca4148d99bf5b0af9fc8df128d3d0d5ef5e192e7000000000000000000000000000000000000000000000000000000000000000d746f74616c4f6666657273282900000000000000000000000000000000000000
Add arguments in
ABI hex encoded form
. Constructor arguments are written right to left, and will be found at the end of the input created bytecode. They may also be
parsed here.
Add Contract Libraries
Contract Libraries
Library 1 Name
A library name called in the .sol file. Multiple libraries (up to 10) may be added for each contract. Click the Add Library button to add an additional one.
Library 1 Address
The 0x library address. This can be found in the generated json file or Truffle output (if using truffle).
Library 2 Name
Library 2 Address
Library 3 Name
Library 3 Address
Library 4 Name
Library 4 Address
Library 5 Name
Library 5 Address
Library 6 Name
Library 6 Address
Library 7 Name
Library 7 Address
Library 8 Name
Library 8 Address
Library 9 Name
Library 9 Address
Library 10 Name
Library 10 Address
Add Library
Loading...
Verify & publish
Cancel
Ok
Ok
Ok
No
Yes