Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6769047 | 7 mins ago | 0.0009956 ETH | ||||
6769047 | 7 mins ago | 0.0009956 ETH | ||||
6768875 | 10 mins ago | 0.14915962 ETH | ||||
6768875 | 10 mins ago | 0.14915962 ETH | ||||
6768867 | 10 mins ago | 0.19903593 ETH | ||||
6768867 | 10 mins ago | 0.19903593 ETH | ||||
6767963 | 26 mins ago | 0.02710482 ETH | ||||
6767963 | 26 mins ago | 0.02710482 ETH | ||||
6764494 | 1 hr ago | 0.3068483 ETH | ||||
6764494 | 1 hr ago | 0.3068483 ETH | ||||
6762853 | 1 hr ago | 0.67052025 ETH | ||||
6762853 | 1 hr ago | 0.67052025 ETH | ||||
6761869 | 2 hrs ago | 0.10057722 ETH | ||||
6761869 | 2 hrs ago | 0.10057722 ETH | ||||
6758717 | 3 hrs ago | 0.18666978 ETH | ||||
6758717 | 3 hrs ago | 0.18666978 ETH | ||||
6758363 | 3 hrs ago | 1.53321718 ETH | ||||
6758363 | 3 hrs ago | 1.53321718 ETH | ||||
6757771 | 3 hrs ago | 0.06089891 ETH | ||||
6757771 | 3 hrs ago | 0.06089891 ETH | ||||
6754789 | 4 hrs ago | 0.19752234 ETH | ||||
6754789 | 4 hrs ago | 0.19752234 ETH | ||||
6753490 | 4 hrs ago | 0.00276 ETH | ||||
6753490 | 4 hrs ago | 0.00276 ETH | ||||
6752759 | 4 hrs ago | 0.24907734 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Unwrapper
Compiler Version
v0.8.22+commit.4fc1097e
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.8.0; import "@openzeppelin/contracts/utils/Context.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@uniswap/lib/contracts/libraries/TransferHelper.sol"; import "../synth-core/interfaces/IWrapper.sol"; /** * @title A contract that implements the unwrap and transfer logic */ contract Unwrapper is Context, Ownable { address public wrapper; event Unwrapped(uint256 amount, address indexed to); /** * CONSTRUCTOR */ constructor(address _wrapper) public { wrapper = _wrapper; } /** * @notice Set wrapper */ function setWrapper(address _newWrapper) external onlyOwner { wrapper = _newWrapper; } /** * @notice Implements an unwrap logic with transfer * @param _amountIn input amount * @param _to address to send gas token */ function unwrap( uint256 _amountIn, address _to ) external { TransferHelper.safeTransferFrom(wrapper, _msgSender(), address(this), _amountIn); IWrapper(wrapper).withdraw(_amountIn); TransferHelper.safeTransferETH(_to, _amountIn); emit Unwrapped(_amountIn, _to); } receive() external payable {} }
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; interface IWrapper { function deposit() external payable; function withdraw(uint256 amount) external; }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.6.0; // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false library TransferHelper { function safeApprove( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeApprove: approve failed' ); } function safeTransfer( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeTransfer: transfer failed' ); } function safeTransferFrom( address token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::transferFrom: transferFrom failed' ); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, 'TransferHelper::safeTransferETH: ETH transfer failed'); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev 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. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
{ "evmVersion": "paris", "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_wrapper","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Unwrapped","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWrapper","type":"address"}],"name":"setWrapper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"unwrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrapper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010000bb5f1b0199f2d3371f72f75614981129b61f049fe3b8c4de54e20f54cd000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Deployed Bytecode
0x0002000000000002000500000000000200000060031002700000008f03300197000100000031035500000001002001900000001a0000c13d000000800c0000390000004000c0043f000000040030008c0000005a0000413d000000000201043b000000e002200270000000970020009c0000005e0000213d0000009b0020009c000000800000613d0000009c0020009c000000970000613d0000009d0020009c000001e20000c13d0000000001000416000000000001004b000001e20000c13d000000000100041a000000bd0000013d0000000002000416000000000002004b000001e20000c13d0000001f0230003900000090022001970000008002200039000000400020043f0000001f0430018f000000910530019800000080025000390000002b0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000270000c13d000000000004004b000000380000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000001e20000413d000000800300043d000000920030009c000001e20000213d000000000100041a00000093021001970000000006000411000000000262019f000000000020041b000000000200041400000092051001970000008f0020009c0000008f02008041000000c00120021000000094011001c70000800d02000039000500000003001d000000030300003900000095040000410237022d0000040f00000005030000290000000100200190000001e20000613d0000000101000039000000000201041a0000009302200197000000000232019f000000000021041b0000002001000039000001000010044300000120000004430000009601000041000002380001042e000000000003004b000001e20000c13d0000000001000019000002380001042e000000980020009c000000b80000613d000000990020009c000000c10000613d0000009a0020009c000001e20000c13d000000240030008c000001e20000413d0000000002000416000000000002004b000001e20000c13d0000000401100370000000000601043b000000920060009c000001e20000213d000000000100041a00000092021001970000000005000411000000000052004b000000d30000c13d000000000006004b0000014f0000c13d0000009e01000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000009f01000041000000c40010043f000000a001000041000000e40010043f000000a10100004100000239000104300000000001000416000000000001004b000001e20000c13d000000000100041a00000092021001970000000005000411000000000052004b000000d30000c13d0000009301100197000000000010041b00000000010004140000008f0010009c0000008f01008041000000c00110021000000094011001c70000800d020000390000000303000039000000950400004100000000060000190237022d0000040f00000001002001900000005c0000c13d000001e20000013d000000440030008c000001e20000413d0000000002000416000000000002004b000001e20000c13d0000000402100370000000000a02043b0000002402100370000000000b02043b0000009200b0009c000001e20000213d0000000102000039000300000002001d000000000202041a000000a304000041000000a00040043f0000000004000411000000a40040043f0000000004000410000000c40040043f000000e400a0043f0000006404000039000000800040043f0000012004000039000000400040043f00000000040004140000009202200197000000040020008c000000dc0000c13d000000000131034f00000001020000390000000004000031000000eb0000013d0000000001000416000000000001004b000001e20000c13d0000000101000039000000000101041a0000009201100197000000800010043f000000a201000041000002380001042e000000240030008c000001e20000413d0000000002000416000000000002004b000001e20000c13d0000000401100370000000000101043b000000920010009c000001e20000213d000500000001001d023702160000040f0000000101000039000000000201041a000000930220019700000005022001af000000000021041b0000000001000019000002380001042e0000009e01000041000000800010043f0000002001000039000000840010043f000000a40010043f000000b501000041000000c40010043f000000b60100004100000239000104300000008f0040009c0000008f04008041000000c001400210000000a4011001c700040000000a001d00050000000b001d0237022d0000040f000000800c000039000000050b000029000000040a000029000000010220018f000100000001035500000060031002700000008f0030019d0000008f04300197000000000004004b000001040000c13d0000006003000039000000000002004b0000010c0000c13d000000400100043d0000006402100039000000b30300004100000000003204350000004402100039000000b40300004100000000003204350000002402100039000000310300003900000000003204350000009e0200004100000000002104350000000402100039000000200300003900000000003204350000008f0010009c0000008f010080410000004001100210000000af011001c70000023900010430000000a50040009c0000015e0000413d000000b201000041000000000010043f0000004101000039000000040010043f000000ab0100004100000239000104300000000001030433000000000001004b000001850000c13d00050000000b001d00040000000a001d0000000101000039000000000101041a000000a80200004100000000002004430000009201100197000200000001001d000000040010044300000000010004140000008f0010009c0000008f01008041000000c001100210000000a9011001c70000800202000039023702320000040f0000000100200190000001920000613d000000000101043b000000000001004b00000004020000290000000504000029000001e20000613d000000400500043d000000aa010000410000000001150436000100000001001d0000000401500039000000000021043500000000010004140000000202000029000000040020008c000001420000613d0000008f0050009c0000008f03000041000000000305401900000040033002100000008f0010009c0000008f01008041000000c001100210000000000131019f000000ab011001c7000200000005001d0237022d0000040f0000000205000029000000050400002900000060031002700000008f0030019d00010000000103550000000100200190000001930000613d000000a60050009c000001060000213d000000400050043f000000ac0050009c000001060000213d0000000101000029000000400010043f00000000000504350000000001000414000000040040008c000001b20000c13d0000000001000031000001c90000013d0000009301100197000000000161019f000000000010041b00000000010004140000008f0010009c0000008f01008041000000c00110021000000094011001c70000800d02000039000000030300003900000095040000410237022d0000040f00000001002001900000005c0000c13d000001e20000013d0000001f03400039000000b7033001970000003f03300039000000b706300197000000400300043d0000000006630019000000000036004b00000000070000390000000107004039000000a60060009c000001060000213d0000000100700190000001060000c13d000000400060043f000000000c430436000000b7054001980000001f0640018f00000000045c0019000001770000613d000000000701034f00000000080c0019000000007907043c0000000008980436000000000048004b000001730000c13d000000000006004b000000ee0000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000ee0000013d000000a70010009c000001e20000213d000000200010008c000001e20000413d00000000010c0433000000000001004b0000000002000039000000010200c039000000000021004b000001e20000c13d000000000001004b000000f00000613d0000010f0000013d000000000001042f0000008f033001970000001f0530018f0000009106300198000000400200043d00000000046200190000019f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000019b0000c13d000000000005004b000001ac0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000008f0020009c0000008f020080410000004002200210000000000112019f000002390001043000000001020000290000008f0020009c0000008f0200804100000040022002100000008f0010009c0000008f01008041000000c001100210000000000121019f000000040000006b000001be0000c13d0000000502000029000001c30000013d00000094011001c700008009020000390000000403000029000000050400002900000000050000190237022d0000040f000300000002001d000100000001035500000060011002700000008f0010019d0000008f01100197000000000001004b000001e40000c13d000000400100043d000000030200002900000001002001900000020d0000613d00000005020000290000009205200197000000040200002900000000002104350000008f0010009c0000008f01008041000000400110021000000000020004140000008f0020009c0000008f02008041000000c002200210000000000112019f000000b0011001c70000800d020000390000000203000039000000b1040000410237022d0000040f00000001002001900000005c0000c13d00000000010000190000023900010430000000a60010009c000001060000213d0000001f03100039000000b7033001970000003f03300039000000b704300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000000a60040009c000001060000213d0000000100500190000001060000c13d000000400040043f0000000005130436000000b7021001980000001f0310018f00000000012500190000000104000367000001ff0000613d000000000604034f000000006706043c0000000005750436000000000015004b000001fb0000c13d000000000003004b000001cb0000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000001cb0000013d0000006402100039000000ad0300004100000000003204350000004402100039000000ae03000041000000000032043500000024021000390000003403000039000000f90000013d000000000100041a00000092011001970000000002000411000000000021004b0000021c0000c13d000000000001042d000000400100043d0000004402100039000000b50300004100000000003204350000009e020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000008f0010009c0000008f010080410000004001100210000000b8011001c70000023900010430000000000001042f00000230002104210000000102000039000000000001042d0000000002000019000000000001042d00000235002104230000000102000039000000000001042d0000000002000019000000000001042d0000023700000432000002380001042e00000239000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ac210cc600000000000000000000000000000000000000000000000000000000ac210cc700000000000000000000000000000000000000000000000000000000c2167d9300000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000007647691d000000000000000000000000000000000000000000000000000000008da5cb5b08c379a0000000000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000002000000080000000000000000023b872dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000002e1a7d4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf20455448207472616e73666572206661696c65640000000000000000000000005472616e7366657248656c7065723a3a736166655472616e736665724554483a000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000200000000000000000000000001d27d1c62712f590d53fa9eb8bbf3a75d09503deae319bb9d99644339cb312e14e487b7100000000000000000000000000000000000000000000000000000000616e7366657246726f6d206661696c65640000000000000000000000000000005472616e7366657248656c7065723a3a7472616e7366657246726f6d3a2074724f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000000000000000000064000000800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dd56cc5ecbe92dea2641e86aa74b4fc50f1c2cef203e95ce0c7be7ac870819
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
-----Decoded View---------------
Arg [0] : _wrapper (address): 0x3439153EB7AF838Ad19d56E1571FBD09333C2809
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.