xDAI Price: $0.999533 (+0.01%)

Contract

0xa974B421d31DB37D6522Abf7783dcBadF39d21D1

Overview

XDAI Balance

Gnosis Chain LogoGnosis Chain LogoGnosis Chain Logo0 XDAI

XDAI Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Burn Pairs394933992025-04-10 21:07:30288 days ago1744319250IN
SushiSwap: WethMaker
0 XDAI0.000347961
Unwind Pairs394933982025-04-10 21:07:25288 days ago1744319245IN
SushiSwap: WethMaker
0 XDAI0.000276831
Unwind Pairs394933972025-04-10 21:07:15288 days ago1744319235IN
SushiSwap: WethMaker
0 XDAI0.000320071
Unwind Pairs394933962025-04-10 21:07:10288 days ago1744319230IN
SushiSwap: WethMaker
0 XDAI0.000328641
Unwind Pairs394933952025-04-10 21:07:05288 days ago1744319225IN
SushiSwap: WethMaker
0 XDAI0.000317521
Unwind Pairs394933942025-04-10 21:07:00288 days ago1744319220IN
SushiSwap: WethMaker
0 XDAI0.000308711
Unwind Pairs394933892025-04-10 21:06:30288 days ago1744319190IN
SushiSwap: WethMaker
0 XDAI0.000317971
Unwind Pairs366135912024-10-21 6:44:10460 days ago1729493050IN
SushiSwap: WethMaker
0 XDAI0.002238421.5
Unwind Pairs358023962024-09-02 23:25:15508 days ago1725319515IN
SushiSwap: WethMaker
0 XDAI0.000396891.99999999
Unwind Pairs358023612024-09-02 23:22:15508 days ago1725319335IN
SushiSwap: WethMaker
0 XDAI0.002949951.99999999
Unwind Pairs352525872024-07-31 22:25:00541 days ago1722464700IN
SushiSwap: WethMaker
0 XDAI0.003390821.99999999
Burn Pairs348707012024-07-09 2:10:25564 days ago1720491025IN
SushiSwap: WethMaker
0 XDAI0.000517693
Unwind Pairs348706672024-07-09 2:07:25564 days ago1720490845IN
SushiSwap: WethMaker
0 XDAI0.003583623
Unwind Pairs348705302024-07-09 1:55:35564 days ago1720490135IN
SushiSwap: WethMaker
0 XDAI0.004167243
Unwind Pairs348704372024-07-09 1:47:45564 days ago1720489665IN
SushiSwap: WethMaker
0 XDAI0.002384983
Unwind Pairs346815732024-06-27 18:11:55575 days ago1719511915IN
SushiSwap: WethMaker
0 XDAI0.004660383.492
Unwind Pairs329337022024-03-14 23:42:05680 days ago1710459725IN
SushiSwap: WethMaker
0 XDAI0.0031472.9818295
Unwind Pairs322293542024-02-01 3:19:10723 days ago1706757550IN
SushiSwap: WethMaker
0 XDAI0.001995951.5
Unwind Pairs316256902023-12-25 22:45:00760 days ago1703544300IN
SushiSwap: WethMaker
0 XDAI0.000348112.00008407
Unwind Pairs316256532023-12-25 22:41:55760 days ago1703544115IN
SushiSwap: WethMaker
0 XDAI0.002955582.00008407
Unwind Pairs288352662023-07-07 21:07:50931 days ago1688764070IN
SushiSwap: WethMaker
0 XDAI0.000857611.01
Unwind Pairs283218692023-06-06 17:50:10962 days ago1686073810IN
SushiSwap: WethMaker
0 XDAI0.00137191.47614736
Unwind Pairs280798192023-05-23 0:08:15977 days ago1684800495IN
SushiSwap: WethMaker
0 XDAI0.003905374.32
Unwind Pairs280797842023-05-23 0:05:10977 days ago1684800310IN
SushiSwap: WethMaker
0 XDAI0.006259414.32
Unwind Pairs260366432023-01-19 3:24:401101 days ago1674098680IN
SushiSwap: WethMaker
0 XDAI0.001954712
View all transactions

View more zero value Internal Transactions in Advanced View mode

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WethMaker

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at gnosisscan.io on 2022-08-10
*/

// Sources flattened with hardhat v2.8.2 https://hardhat.org

// File contracts/Auth.sol

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity >=0.8.0;

abstract contract Auth {

    event SetOwner(address indexed owner);
    event SetTrusted(address indexed user, bool isTrusted);

    address public owner;

    mapping(address => bool) public trusted;

    error OnlyOwner();
    error OnlyTrusted();

    modifier onlyOwner() {
        if (msg.sender != owner) revert OnlyOwner();
        _;
    }

    modifier onlyTrusted() {
        if (!trusted[msg.sender]) revert OnlyTrusted();
        _;
    }

    constructor(address newOwner, address trustedUser) {
        owner = newOwner;
        trusted[trustedUser] = true;

        emit SetOwner(owner);
        emit SetTrusted(trustedUser, true);
    }

    function setOwner(address newOwner) external onlyOwner {
        owner = newOwner;
        emit SetOwner(newOwner);
    }

    function setTrusted(address user, bool isTrusted) external onlyOwner {
        trusted[user] = isTrusted;
        emit SetTrusted(user, isTrusted);
    }

}


// File contracts/interfaces/IERC20.sol

interface IERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function balanceOf(address addy) external view returns (uint256);
}


// File contracts/interfaces/IUniV2.sol

interface IUniV2 is IERC20 {
    function totalSupply() external view returns (uint256);
    function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast);
    function burn(address to) external returns (uint256 amount0, uint256 amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function token0() external view returns (address);
    function token1() external view returns (address);
}


// File contracts/interfaces/IUniV2Factory.sol

interface IUniV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address);
}


// File contracts/Unwindooor.sol

pragma solidity >=0.8.0;



/// @notice Contract for withdrawing LP positions.
/// @dev Calling unwindPairs() withdraws the LP position into one of the two tokens
contract Unwindooor is Auth {

    error SlippageProtection();
    error TransferFailed();

    bytes4 private constant TRANSFER_SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    IUniV2Factory public immutable factory;

    constructor(
        address owner,
        address user,
        address factoryAddress
    ) Auth(owner, user) {
        factory = IUniV2Factory(factoryAddress);
    }

    // We remove liquidity and sell tokensB[i] for tokensA[i].
    function unwindPairs(
        address[] calldata tokensA,
        address[] calldata tokensB,
        uint256[] calldata amounts,
        uint256[] calldata minimumOuts
    ) external onlyTrusted {
        for (uint256 i = 0; i < tokensA.length; i++) {
            
            address tokenA = tokensA[i];
            address tokenB = tokensB[i];
            bool keepToken0 = tokenA < tokenB;
            address pair = _pairFor(tokenA, tokenB);

            if (_unwindPair(IUniV2(pair), amounts[i], keepToken0, tokenB) < minimumOuts[i]) revert SlippageProtection();
        }
    }

    // Burn liquidity and sell one of the tokens for the other.
    function _unwindPair(
        IUniV2 pair,
        uint256 amount,
        bool keepToken0,
        address tokenToSell
    ) private returns (uint256 amountOut) {

        pair.transfer(address(pair), amount);
        (uint256 amount0, uint256 amount1) = pair.burn(address(this));
        (uint112 reserve0, uint112 reserve1,) = pair.getReserves();

        if (keepToken0) {
            _safeTransfer(tokenToSell, address(pair), amount1);
            amountOut = _getAmountOut(amount1, uint256(reserve1), uint256(reserve0));
            pair.swap(amountOut, 0, address(this), "");
            amountOut += amount0;
        } else {
            _safeTransfer(tokenToSell, address(pair), amount0);
            amountOut = _getAmountOut(amount0, uint256(reserve0), uint256(reserve1));
            pair.swap(0, amountOut, address(this), "");
            amountOut += amount1;
        }
    }

    // In case we don't want to sell one of the tokens for the other.
    function burnPairs(
        IUniV2[] calldata lpTokens,
        uint256[] calldata amounts,
        uint256[] calldata minimumOut0,
        uint256[] calldata minimumOut1
    ) external onlyTrusted {
        for (uint256 i = 0; i < lpTokens.length; i++) {
            IUniV2 pair = lpTokens[i];
            pair.transfer(address(pair), amounts[i]);
            (uint256 amount0, uint256 amount1) = pair.burn(address(this));
            if (amount0 < minimumOut0[i] || amount1 < minimumOut1[i]) revert SlippageProtection();
        }
    }

    function _getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) internal pure returns (uint256) {
        uint256 amountInWithFee = amountIn * 997;
        uint256 numerator = amountInWithFee * reserveOut;
        uint256 denominator = reserveIn * 1000 + amountInWithFee;
        return numerator / denominator;
    }

    function _safeTransfer(address token, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(TRANSFER_SELECTOR, to, value));
        if (!success || (data.length != 0 && !abi.decode(data, (bool)))) revert TransferFailed();
    }

    function _pairFor(address tokenA, address tokenB) internal view returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint160(uint256(keccak256(abi.encodePacked(
            hex'ff',
            factory,
            keccak256(abi.encodePacked(token0, token1)),
            hex'e18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303' // init code hash
        )))));
    }

}


// File contracts/WethMaker.sol

pragma solidity >=0.8.0;

/// @notice Contract for selling received tokens into weth. Deploy on secondary networks.
contract WethMaker is Unwindooor {

    event SetBridge(address indexed token, address bridge);

    address public immutable weth;

    mapping(address => address) public bridges;

    constructor(
        address owner,
        address user,
        address factory,
        address _weth
    ) Unwindooor(owner, user, factory) {
        weth = _weth;
    }

    function setBridge(address token, address bridge) external onlyOwner {
        bridges[token] = bridge;
        emit SetBridge(token, bridge);
    }

    // Exchange token for weth or its bridge token (which gets converted into weth in subsequent transactions).
    function buyWeth(
        address[] calldata tokens,
        uint256[] calldata amountsIn,
        uint256[] calldata minimumOuts
    ) external onlyTrusted {
        for (uint256 i = 0; i < tokens.length; i++) {

            address tokenIn = tokens[i];
            address outToken = bridges[tokenIn] == address(0) ? weth : bridges[tokenIn];
            if (_swap(tokenIn, outToken, amountsIn[i], address(this)) < minimumOuts[i]) revert SlippageProtection();
            
        }
    }

    function _swap(
        address tokenIn,
        address tokenOut,
        uint256 amountIn,
        address to
    ) internal returns (uint256 outAmount) {

        IUniV2 pair = IUniV2(_pairFor(tokenIn, tokenOut));
        _safeTransfer(tokenIn, address(pair), amountIn);

        (uint256 reserve0, uint256 reserve1, ) = pair.getReserves();

        if (tokenIn < tokenOut) {

            outAmount = _getAmountOut(amountIn, reserve0, reserve1);
            pair.swap(0, outAmount, to, "");

        } else {

            outAmount = _getAmountOut(amountIn, reserve1, reserve0);
            pair.swap(outAmount, 0, to, "");

        }

    }

    // Allow the owner to withdraw the funds and bridge them to mainnet.
    function withdraw(address token, address to, uint256 _value) onlyOwner external {
        if (token != address(0)) {
            _safeTransfer(token, to, _value);
        } else {
            (bool success, ) = to.call{value: _value}("");
            require(success);
        }
    }

    function doAction(address to, uint256 _value, bytes memory data) onlyOwner external {
        (bool success, ) = to.call{value: _value}(data);
        require(success);
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"OnlyTrusted","type":"error"},{"inputs":[],"name":"SlippageProtection","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"bridge","type":"address"}],"name":"SetBridge","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"SetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isTrusted","type":"bool"}],"name":"SetTrusted","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bridges","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IUniV2[]","name":"lpTokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256[]","name":"minimumOut0","type":"uint256[]"},{"internalType":"uint256[]","name":"minimumOut1","type":"uint256[]"}],"name":"burnPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amountsIn","type":"uint256[]"},{"internalType":"uint256[]","name":"minimumOuts","type":"uint256[]"}],"name":"buyWeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"doAction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isTrusted","type":"bool"}],"name":"setTrusted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"trusted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokensA","type":"address[]"},{"internalType":"address[]","name":"tokensB","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256[]","name":"minimumOuts","type":"uint256[]"}],"name":"unwindPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040523480156200001157600080fd5b50604051620017b0380380620017b0833981016040819052620000349162000126565b600080546001600160a01b0319166001600160a01b038681169190911782558481168252600160208190526040808420805460ff1916909217909155825490518793879387938693869391909216917f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb59190a2604051600181526001600160a01b038216907f878d105ed19c01e992a54459c2f04ba19432ac45600b42ce340d0342722074369060200160405180910390a250506001600160a01b039081166080529290921660a05250620001839350505050565b80516001600160a01b03811681146200012157600080fd5b919050565b600080600080608085870312156200013d57600080fd5b620001488562000109565b9350620001586020860162000109565b9250620001686040860162000109565b9150620001786060860162000109565b905092959194509250565b60805160a0516115f9620001b760003960008181610126015261084b0152600081816102570152610a1e01526115f96000f3fe6080604052600436106100c65760003560e01c80638e9be9f41161007f578063c45a015511610059578063c45a015514610245578063ced67f0c14610279578063d9caed12146102af578063f32a12ac146102cf57600080fd5b80638e9be9f4146101e55780639d22ae8c146102055780639dd8a81c1461022557600080fd5b806313af4035146100d2578063248091c0146100f45780633fc8cef31461011457806354a0af17146101655780636e9821c2146101855780638da5cb5b146101c557600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed3660046110a6565b6102ef565b005b34801561010057600080fd5b506100f261010f366004611116565b610362565b34801561012057600080fd5b506101487f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017157600080fd5b506100f26101803660046111f0565b610551565b34801561019157600080fd5b506101b56101a03660046110a6565b60016020526000908152604090205460ff1681565b604051901515815260200161015c565b3480156101d157600080fd5b50600054610148906001600160a01b031681565b3480156101f157600080fd5b506100f2610200366004611116565b6105ed565b34801561021157600080fd5b506100f26102203660046112bd565b61070e565b34801561023157600080fd5b506100f26102403660046112f6565b6107a1565b34801561025157600080fd5b506101487f000000000000000000000000000000000000000000000000000000000000000081565b34801561028557600080fd5b506101486102943660046110a6565b6002602052600090815260409020546001600160a01b031681565b3480156102bb57600080fd5b506100f26102ca366004611390565b6108e7565b3480156102db57600080fd5b506100f26102ea3660046113df565b610946565b6000546001600160a01b0316331461031a57604051635fc483c560e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b038316908117825560405190917f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb591a250565b3360009081526001602052604090205460ff166103925760405163cf1119ab60e01b815260040160405180910390fd5b60005b878110156105465760008989838181106103b1576103b161140d565b90506020020160208101906103c691906110a6565b9050806001600160a01b031663a9059cbb828a8a868181106103ea576103ea61140d565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104629190611423565b5060405163226bf2d160e21b815230600482015260009081906001600160a01b038416906389afcb449060240160408051808303816000875af11580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190611440565b915091508787858181106104e7576104e761140d565b9050602002013582108061051257508585858181106105085761050861140d565b9050602002013581105b15610530576040516305f50c7d60e21b815260040160405180910390fd5b505050808061053e9061147a565b915050610395565b505050505050505050565b6000546001600160a01b0316331461057c57604051635fc483c560e01b815260040160405180910390fd5b6000836001600160a01b031683836040516105979190611495565b60006040518083038185875af1925050503d80600081146105d4576040519150601f19603f3d011682016040523d82523d6000602084013e6105d9565b606091505b50509050806105e757600080fd5b50505050565b3360009081526001602052604090205460ff1661061d5760405163cf1119ab60e01b815260040160405180910390fd5b60005b8781101561054657600089898381811061063c5761063c61140d565b905060200201602081019061065191906110a6565b905060008888848181106106675761066761140d565b905060200201602081019061067c91906110a6565b90506001600160a01b0380821690831610600061069984846109c9565b90508686868181106106ad576106ad61140d565b905060200201356106d8828b8b898181106106ca576106ca61140d565b905060200201358587610ada565b10156106f7576040516305f50c7d60e21b815260040160405180910390fd5b5050505080806107069061147a565b915050610620565b6000546001600160a01b0316331461073957604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0382811660008181526002602090815260409182902080546001600160a01b0319169486169485179055905192835290917f8357797ab855a0bad5103ea8bd2f21f986350e94d73f143ae114db8f0db5a93a91015b60405180910390a25050565b3360009081526001602052604090205460ff166107d15760405163cf1119ab60e01b815260040160405180910390fd5b60005b858110156108de5760008787838181106107f0576107f061140d565b905060200201602081019061080591906110a6565b6001600160a01b03808216600090815260026020526040812054929350911615610849576001600160a01b038083166000908152600260205260409020541661086b565b7f00000000000000000000000000000000000000000000000000000000000000005b905084848481811061087f5761087f61140d565b905060200201356108aa83838a8a8881811061089d5761089d61140d565b9050602002013530610d7b565b10156108c9576040516305f50c7d60e21b815260040160405180910390fd5b505080806108d69061147a565b9150506107d4565b50505050505050565b6000546001600160a01b0316331461091257604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b038316156109315761092c838383610f1e565b505050565b6000826001600160a01b031682604051610597565b6000546001600160a01b0316331461097157604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b038216600081815260016020908152604091829020805460ff191685151590811790915591519182527f878d105ed19c01e992a54459c2f04ba19432ac45600b42ce340d0342722074369101610795565b6000806000836001600160a01b0316856001600160a01b0316106109ee5783856109f1565b84845b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b16603482015291935091507f00000000000000000000000000000000000000000000000000000000000000009060480160405160208183030381529060405280519060200120604051602001610ab99291906001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303603582015260550190565b60408051601f19818403018152919052805160209091012095945050505050565b60405163a9059cbb60e01b81526001600160a01b038516600482018190526024820185905260009163a9059cbb906044016020604051808303816000875af1158015610b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611423565b5060405163226bf2d160e21b815230600482015260009081906001600160a01b038816906389afcb449060240160408051808303816000875af1158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190611440565b91509150600080886001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2691906114ec565b50915091508615610cd257610c3c868a85610f1e565b610c5983826001600160701b0316846001600160701b031661103f565b60405163022c0d9f60e01b81529095506001600160a01b038a169063022c0d9f90610c8d908890600090309060040161153c565b600060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b505050508385610ccb919061156a565b9450610d6f565b610cdd868a86610f1e565b610cfa84836001600160701b0316836001600160701b031661103f565b60405163022c0d9f60e01b81529095506001600160a01b038a169063022c0d9f90610d2e906000908990309060040161153c565b600060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050508285610d6c919061156a565b94505b50505050949350505050565b600080610d8886866109c9565b9050610d95868286610f1e565b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa91906114ec565b506001600160701b031691506001600160701b03169150866001600160a01b0316886001600160a01b03161015610ea157610e3686838361103f565b60405163022c0d9f60e01b81529094506001600160a01b0384169063022c0d9f90610e6a9060009088908a9060040161153c565b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b50505050610f13565b610eac86828461103f565b60405163022c0d9f60e01b81529094506001600160a01b0384169063022c0d9f90610ee09087906000908a9060040161153c565b600060405180830381600087803b158015610efa57600080fd5b505af1158015610f0e573d6000803e3d6000fd5b505050505b505050949350505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291516000928392871691610faa9190611495565b6000604051808303816000865af19150503d8060008114610fe7576040519150601f19603f3d011682016040523d82523d6000602084013e610fec565b606091505b509150915081158061101a575080511580159061101a5750808060200190518101906110189190611423565b155b15611038576040516312171d8360e31b815260040160405180910390fd5b5050505050565b60008061104e856103e5611582565b9050600061105c8483611582565b905060008261106d876103e8611582565b611077919061156a565b905061108381836115a1565b979650505050505050565b6001600160a01b03811681146110a357600080fd5b50565b6000602082840312156110b857600080fd5b81356110c38161108e565b9392505050565b60008083601f8401126110dc57600080fd5b50813567ffffffffffffffff8111156110f457600080fd5b6020830191508360208260051b850101111561110f57600080fd5b9250929050565b6000806000806000806000806080898b03121561113257600080fd5b883567ffffffffffffffff8082111561114a57600080fd5b6111568c838d016110ca565b909a50985060208b013591508082111561116f57600080fd5b61117b8c838d016110ca565b909850965060408b013591508082111561119457600080fd5b6111a08c838d016110ca565b909650945060608b01359150808211156111b957600080fd5b506111c68b828c016110ca565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561120557600080fd5b83356112108161108e565b925060208401359150604084013567ffffffffffffffff8082111561123457600080fd5b818601915086601f83011261124857600080fd5b81358181111561125a5761125a6111da565b604051601f8201601f19908116603f01168101908382118183101715611282576112826111da565b8160405282815289602084870101111561129b57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080604083850312156112d057600080fd5b82356112db8161108e565b915060208301356112eb8161108e565b809150509250929050565b6000806000806000806060878903121561130f57600080fd5b863567ffffffffffffffff8082111561132757600080fd5b6113338a838b016110ca565b9098509650602089013591508082111561134c57600080fd5b6113588a838b016110ca565b9096509450604089013591508082111561137157600080fd5b5061137e89828a016110ca565b979a9699509497509295939492505050565b6000806000606084860312156113a557600080fd5b83356113b08161108e565b925060208401356113c08161108e565b929592945050506040919091013590565b80151581146110a357600080fd5b600080604083850312156113f257600080fd5b82356113fd8161108e565b915060208301356112eb816113d1565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561143557600080fd5b81516110c3816113d1565b6000806040838503121561145357600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b600060001982141561148e5761148e611464565b5060010190565b6000825160005b818110156114b6576020818601810151858301520161149c565b818111156114c5576000828501525b509190910192915050565b80516001600160701b03811681146114e757600080fd5b919050565b60008060006060848603121561150157600080fd5b61150a846114d0565b9250611518602085016114d0565b9150604084015163ffffffff8116811461153157600080fd5b809150509250925092565b92835260208301919091526001600160a01b0316604082015260806060820181905260009082015260a00190565b6000821982111561157d5761157d611464565b500190565b600081600019048311821515161561159c5761159c611464565b500290565b6000826115be57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212202a202e122b4b15a8300b5ebfacac7977070794a7640ce91553cb6607f254f91664736f6c634300080b0033000000000000000000000000c375411c6597f692add6a7a3ad5b3c38626b0f260000000000000000000000004bb4c1b0745ef7b4642feeccd0740dec417ca0a0000000000000000000000000c35dadb65012ec5796536bd9864ed8773abc74c40000000000000000000000006a023ccd1ff6f2045c3309768ead9e68f978f6e1

Deployed Bytecode

0x6080604052600436106100c65760003560e01c80638e9be9f41161007f578063c45a015511610059578063c45a015514610245578063ced67f0c14610279578063d9caed12146102af578063f32a12ac146102cf57600080fd5b80638e9be9f4146101e55780639d22ae8c146102055780639dd8a81c1461022557600080fd5b806313af4035146100d2578063248091c0146100f45780633fc8cef31461011457806354a0af17146101655780636e9821c2146101855780638da5cb5b146101c557600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed3660046110a6565b6102ef565b005b34801561010057600080fd5b506100f261010f366004611116565b610362565b34801561012057600080fd5b506101487f0000000000000000000000006a023ccd1ff6f2045c3309768ead9e68f978f6e181565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017157600080fd5b506100f26101803660046111f0565b610551565b34801561019157600080fd5b506101b56101a03660046110a6565b60016020526000908152604090205460ff1681565b604051901515815260200161015c565b3480156101d157600080fd5b50600054610148906001600160a01b031681565b3480156101f157600080fd5b506100f2610200366004611116565b6105ed565b34801561021157600080fd5b506100f26102203660046112bd565b61070e565b34801561023157600080fd5b506100f26102403660046112f6565b6107a1565b34801561025157600080fd5b506101487f000000000000000000000000c35dadb65012ec5796536bd9864ed8773abc74c481565b34801561028557600080fd5b506101486102943660046110a6565b6002602052600090815260409020546001600160a01b031681565b3480156102bb57600080fd5b506100f26102ca366004611390565b6108e7565b3480156102db57600080fd5b506100f26102ea3660046113df565b610946565b6000546001600160a01b0316331461031a57604051635fc483c560e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b038316908117825560405190917f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb591a250565b3360009081526001602052604090205460ff166103925760405163cf1119ab60e01b815260040160405180910390fd5b60005b878110156105465760008989838181106103b1576103b161140d565b90506020020160208101906103c691906110a6565b9050806001600160a01b031663a9059cbb828a8a868181106103ea576103ea61140d565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104629190611423565b5060405163226bf2d160e21b815230600482015260009081906001600160a01b038416906389afcb449060240160408051808303816000875af11580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190611440565b915091508787858181106104e7576104e761140d565b9050602002013582108061051257508585858181106105085761050861140d565b9050602002013581105b15610530576040516305f50c7d60e21b815260040160405180910390fd5b505050808061053e9061147a565b915050610395565b505050505050505050565b6000546001600160a01b0316331461057c57604051635fc483c560e01b815260040160405180910390fd5b6000836001600160a01b031683836040516105979190611495565b60006040518083038185875af1925050503d80600081146105d4576040519150601f19603f3d011682016040523d82523d6000602084013e6105d9565b606091505b50509050806105e757600080fd5b50505050565b3360009081526001602052604090205460ff1661061d5760405163cf1119ab60e01b815260040160405180910390fd5b60005b8781101561054657600089898381811061063c5761063c61140d565b905060200201602081019061065191906110a6565b905060008888848181106106675761066761140d565b905060200201602081019061067c91906110a6565b90506001600160a01b0380821690831610600061069984846109c9565b90508686868181106106ad576106ad61140d565b905060200201356106d8828b8b898181106106ca576106ca61140d565b905060200201358587610ada565b10156106f7576040516305f50c7d60e21b815260040160405180910390fd5b5050505080806107069061147a565b915050610620565b6000546001600160a01b0316331461073957604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0382811660008181526002602090815260409182902080546001600160a01b0319169486169485179055905192835290917f8357797ab855a0bad5103ea8bd2f21f986350e94d73f143ae114db8f0db5a93a91015b60405180910390a25050565b3360009081526001602052604090205460ff166107d15760405163cf1119ab60e01b815260040160405180910390fd5b60005b858110156108de5760008787838181106107f0576107f061140d565b905060200201602081019061080591906110a6565b6001600160a01b03808216600090815260026020526040812054929350911615610849576001600160a01b038083166000908152600260205260409020541661086b565b7f0000000000000000000000006a023ccd1ff6f2045c3309768ead9e68f978f6e15b905084848481811061087f5761087f61140d565b905060200201356108aa83838a8a8881811061089d5761089d61140d565b9050602002013530610d7b565b10156108c9576040516305f50c7d60e21b815260040160405180910390fd5b505080806108d69061147a565b9150506107d4565b50505050505050565b6000546001600160a01b0316331461091257604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b038316156109315761092c838383610f1e565b505050565b6000826001600160a01b031682604051610597565b6000546001600160a01b0316331461097157604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b038216600081815260016020908152604091829020805460ff191685151590811790915591519182527f878d105ed19c01e992a54459c2f04ba19432ac45600b42ce340d0342722074369101610795565b6000806000836001600160a01b0316856001600160a01b0316106109ee5783856109f1565b84845b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b16603482015291935091507f000000000000000000000000c35dadb65012ec5796536bd9864ed8773abc74c49060480160405160208183030381529060405280519060200120604051602001610ab99291906001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303603582015260550190565b60408051601f19818403018152919052805160209091012095945050505050565b60405163a9059cbb60e01b81526001600160a01b038516600482018190526024820185905260009163a9059cbb906044016020604051808303816000875af1158015610b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611423565b5060405163226bf2d160e21b815230600482015260009081906001600160a01b038816906389afcb449060240160408051808303816000875af1158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190611440565b91509150600080886001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2691906114ec565b50915091508615610cd257610c3c868a85610f1e565b610c5983826001600160701b0316846001600160701b031661103f565b60405163022c0d9f60e01b81529095506001600160a01b038a169063022c0d9f90610c8d908890600090309060040161153c565b600060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b505050508385610ccb919061156a565b9450610d6f565b610cdd868a86610f1e565b610cfa84836001600160701b0316836001600160701b031661103f565b60405163022c0d9f60e01b81529095506001600160a01b038a169063022c0d9f90610d2e906000908990309060040161153c565b600060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050508285610d6c919061156a565b94505b50505050949350505050565b600080610d8886866109c9565b9050610d95868286610f1e565b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa91906114ec565b506001600160701b031691506001600160701b03169150866001600160a01b0316886001600160a01b03161015610ea157610e3686838361103f565b60405163022c0d9f60e01b81529094506001600160a01b0384169063022c0d9f90610e6a9060009088908a9060040161153c565b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b50505050610f13565b610eac86828461103f565b60405163022c0d9f60e01b81529094506001600160a01b0384169063022c0d9f90610ee09087906000908a9060040161153c565b600060405180830381600087803b158015610efa57600080fd5b505af1158015610f0e573d6000803e3d6000fd5b505050505b505050949350505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291516000928392871691610faa9190611495565b6000604051808303816000865af19150503d8060008114610fe7576040519150601f19603f3d011682016040523d82523d6000602084013e610fec565b606091505b509150915081158061101a575080511580159061101a5750808060200190518101906110189190611423565b155b15611038576040516312171d8360e31b815260040160405180910390fd5b5050505050565b60008061104e856103e5611582565b9050600061105c8483611582565b905060008261106d876103e8611582565b611077919061156a565b905061108381836115a1565b979650505050505050565b6001600160a01b03811681146110a357600080fd5b50565b6000602082840312156110b857600080fd5b81356110c38161108e565b9392505050565b60008083601f8401126110dc57600080fd5b50813567ffffffffffffffff8111156110f457600080fd5b6020830191508360208260051b850101111561110f57600080fd5b9250929050565b6000806000806000806000806080898b03121561113257600080fd5b883567ffffffffffffffff8082111561114a57600080fd5b6111568c838d016110ca565b909a50985060208b013591508082111561116f57600080fd5b61117b8c838d016110ca565b909850965060408b013591508082111561119457600080fd5b6111a08c838d016110ca565b909650945060608b01359150808211156111b957600080fd5b506111c68b828c016110ca565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561120557600080fd5b83356112108161108e565b925060208401359150604084013567ffffffffffffffff8082111561123457600080fd5b818601915086601f83011261124857600080fd5b81358181111561125a5761125a6111da565b604051601f8201601f19908116603f01168101908382118183101715611282576112826111da565b8160405282815289602084870101111561129b57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080604083850312156112d057600080fd5b82356112db8161108e565b915060208301356112eb8161108e565b809150509250929050565b6000806000806000806060878903121561130f57600080fd5b863567ffffffffffffffff8082111561132757600080fd5b6113338a838b016110ca565b9098509650602089013591508082111561134c57600080fd5b6113588a838b016110ca565b9096509450604089013591508082111561137157600080fd5b5061137e89828a016110ca565b979a9699509497509295939492505050565b6000806000606084860312156113a557600080fd5b83356113b08161108e565b925060208401356113c08161108e565b929592945050506040919091013590565b80151581146110a357600080fd5b600080604083850312156113f257600080fd5b82356113fd8161108e565b915060208301356112eb816113d1565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561143557600080fd5b81516110c3816113d1565b6000806040838503121561145357600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b600060001982141561148e5761148e611464565b5060010190565b6000825160005b818110156114b6576020818601810151858301520161149c565b818111156114c5576000828501525b509190910192915050565b80516001600160701b03811681146114e757600080fd5b919050565b60008060006060848603121561150157600080fd5b61150a846114d0565b9250611518602085016114d0565b9150604084015163ffffffff8116811461153157600080fd5b809150509250925092565b92835260208301919091526001600160a01b0316604082015260806060820181905260009082015260a00190565b6000821982111561157d5761157d611464565b500190565b600081600019048311821515161561159c5761159c611464565b500290565b6000826115be57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212202a202e122b4b15a8300b5ebfacac7977070794a7640ce91553cb6607f254f91664736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c375411c6597f692add6a7a3ad5b3c38626b0f260000000000000000000000004bb4c1b0745ef7b4642feeccd0740dec417ca0a0000000000000000000000000c35dadb65012ec5796536bd9864ed8773abc74c40000000000000000000000006a023ccd1ff6f2045c3309768ead9e68f978f6e1

-----Decoded View---------------
Arg [0] : owner (address): 0xc375411C6597F692Add6a7a3AD5b3C38626B0F26
Arg [1] : user (address): 0x4bb4c1B0745ef7B4642fEECcd0740deC417ca0a0
Arg [2] : factory (address): 0xc35DADB65012eC5796536bD9864eD8773aBc74C4
Arg [3] : _weth (address): 0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c375411c6597f692add6a7a3ad5b3c38626b0f26
Arg [1] : 0000000000000000000000004bb4c1b0745ef7b4642feeccd0740dec417ca0a0
Arg [2] : 000000000000000000000000c35dadb65012ec5796536bd9864ed8773abc74c4
Arg [3] : 0000000000000000000000006a023ccd1ff6f2045c3309768ead9e68f978f6e1


Block Transaction Gas Used Reward
view all blocks validated

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.