S Price: $0.428108 (-2.09%)

Contract

0x467B254a41df8D98ce89eAf840eA69C36d4567e4
Transaction Hash
Method
Block
From
To
Withdraw ETH128075472025-03-10 8:34:3414 hrs ago1741595674IN
0x467B254a...36d4567e4
0 S0.0035808160.5
Transfer128032602025-03-10 8:00:4415 hrs ago1741593644IN
0x467B254a...36d4567e4
0.1 S0.0012071955
Transfer128012142025-03-10 7:44:3915 hrs ago1741592679IN
0x467B254a...36d4567e4
0.1 S0.00115555
Transfer Ownersh...127957492025-03-10 6:59:0716 hrs ago1741589947IN
0x467B254a...36d4567e4
0 S0.0016140855

Latest 1 internal transaction

Parent Transaction Hash Block From To
128075472025-03-10 8:34:3414 hrs ago1741595674
0x467B254a...36d4567e4
0.1 S
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xF9a52157...E15b5e579
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
BridgersSwap

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : BridgersSwap.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        _status = _ENTERED;

        _;

        _status = _NOT_ENTERED;
    }
}

library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper: APPROVE_FAILED");
    }

    function safeTransfer(address token, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper: TRANSFER_FAILED");
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper: TRANSFER_FROM_FAILED");
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success, ) = to.call{value: value}(new bytes(0));
        require(success, "TransferHelper: ETH_TRANSFER_FAILED");
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract BridgersSwap is ReentrancyGuard, Ownable {
    string public name;

    string public symbol;

    event Swap(
        address fromToken,
        string toToken,
        address sender,
        string destination,
        uint256 fromAmount,
        uint256 minReturnAmount
    );

    event SwapEth(string toToken, address sender, string destination, uint256 fromAmount, uint256 minReturnAmount);

    event WithdrawETH(uint256 amount);

    event Withdtraw(address token, uint256 amount);

    constructor() {
        name = "Bridgers Swap1.1";
        symbol = "BridgersSwap";
    }

    function swap(
        address fromToken,
        string memory toToken,
        string memory destination,
        uint256 fromAmount,
        uint256 minReturnAmount
    ) external nonReentrant {
        require(fromToken != address(0), "FROMTOKEN_CANT_T_BE_0");
        require(fromAmount > 0, "FROM_TOKEN_AMOUNT_MUST_BE_MORE_THAN_0");
        uint256 _inputAmount;
        uint256 _fromTokenBalanceOrigin = IERC20(fromToken).balanceOf(address(this));
        TransferHelper.safeTransferFrom(fromToken, msg.sender, address(this), fromAmount);
        uint256 _fromTokenBalanceNew = IERC20(fromToken).balanceOf(address(this));
        _inputAmount = _fromTokenBalanceNew - _fromTokenBalanceOrigin;
        require(_inputAmount > 0, "NO_FROM_TOKEN_TRANSFER_TO_THIS_CONTRACT");
        emit Swap(fromToken, toToken, msg.sender, destination, fromAmount, minReturnAmount);
    }

    function swapEth(string memory toToken, string memory destination, uint256 minReturnAmount) external payable nonReentrant {
        uint256 _ethAmount = msg.value;
        require(_ethAmount > 0, "ETH_AMOUNT_MUST_BE_MORE_THAN_0");
        emit SwapEth(toToken, msg.sender, destination, _ethAmount, minReturnAmount);
    }

    function withdrawETH(address destination, uint256 amount) external onlyOwner {
        require(destination != address(0), "DESTINATION_CANNT_BE_0_ADDRESS");
        uint256 balance = address(this).balance;
        require(balance >= amount, "AMOUNT_CANNT_MORE_THAN_BALANCE");
        TransferHelper.safeTransferETH(destination, amount);
        emit WithdrawETH(amount);
    }

    function withdraw(address token, address destination, uint256 amount) external onlyOwner {
        require(destination != address(0), "DESTINATION_CANNT_BE_0_ADDRESS");
        require(token != address(0), "TOKEN_MUST_NOT_BE_0");
        uint256 balance = IERC20(token).balanceOf(address(this));
        require(balance >= amount, "AMOUNT_CANNT_MORE_THAN_BALANCE");
        TransferHelper.safeTransfer(token, destination, amount);
        emit Withdtraw(token, amount);
    }

    receive() external payable {}
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"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":"address","name":"fromToken","type":"address"},{"indexed":false,"internalType":"string","name":"toToken","type":"string"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"destination","type":"string"},{"indexed":false,"internalType":"uint256","name":"fromAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minReturnAmount","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"toToken","type":"string"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"destination","type":"string"},{"indexed":false,"internalType":"uint256","name":"fromAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minReturnAmount","type":"uint256"}],"name":"SwapEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdtraw","type":"event"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[{"internalType":"address","name":"fromToken","type":"address"},{"internalType":"string","name":"toToken","type":"string"},{"internalType":"string","name":"destination","type":"string"},{"internalType":"uint256","name":"fromAmount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"toToken","type":"string"},{"internalType":"string","name":"destination","type":"string"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"}],"name":"swapEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061008a5760003560e01c80638da5cb5b116100595780638da5cb5b1461010b57806395d89b41146101335780639ddf93bb14610148578063d9caed1214610168578063f2fde38b1461018857600080fd5b806306fdde031461009657806316b3b4c2146100c15780634782f779146100d6578063715018a6146100f657600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100ab6101a8565b6040516100b89190610d59565b60405180910390f35b6100d46100cf366004610e16565b610236565b005b3480156100e257600080fd5b506100d46100f1366004610e9f565b61032a565b34801561010257600080fd5b506100d461043d565b34801561011757600080fd5b506001546040516001600160a01b0390911681526020016100b8565b34801561013f57600080fd5b506100ab610473565b34801561015457600080fd5b506100d4610163366004610ec9565b610480565b34801561017457600080fd5b506100d4610183366004610f4f565b610727565b34801561019457600080fd5b506100d46101a3366004610f8b565b610903565b600280546101b590610fa6565b80601f01602080910402602001604051908101604052809291908181526020018280546101e190610fa6565b801561022e5780601f106102035761010080835404028352916020019161022e565b820191906000526020600020905b81548152906001019060200180831161021157829003601f168201915b505050505081565b60026000540361028d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260005534806102e05760405162461bcd60e51b815260206004820152601e60248201527f4554485f414d4f554e545f4d5553545f42455f4d4f52455f5448414e5f3000006044820152606401610284565b7f4e96fb90a89341a56db7ad2bbf04c715bbf20be6a9a9e764671f718c4697649a8433858486604051610317959493929190610fe0565b60405180910390a1505060016000555050565b6001546001600160a01b031633146103545760405162461bcd60e51b815260040161028490611029565b6001600160a01b0382166103aa5760405162461bcd60e51b815260206004820152601e60248201527f44455354494e4154494f4e5f43414e4e545f42455f305f4144445245535300006044820152606401610284565b47818110156103fb5760405162461bcd60e51b815260206004820152601e60248201527f414d4f554e545f43414e4e545f4d4f52455f5448414e5f42414c414e434500006044820152606401610284565b610405838361099e565b6040518281527f94effa14ea3a1ef396fa2fd829336d1597f1d76b548c26bfa2332869706638af9060200160405180910390a1505050565b6001546001600160a01b031633146104675760405162461bcd60e51b815260040161028490611029565b6104716000610a6c565b565b600380546101b590610fa6565b6002600054036104d25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610284565b60026000556001600160a01b0385166105255760405162461bcd60e51b8152602060048201526015602482015274046524f4d544f4b454e5f43414e545f545f42455f3605c1b6044820152606401610284565b600082116105835760405162461bcd60e51b815260206004820152602560248201527f46524f4d5f544f4b454e5f414d4f554e545f4d5553545f42455f4d4f52455f54604482015264048414e5f360dc1b6064820152608401610284565b6040516370a0823160e01b815230600482015260009081906001600160a01b038816906370a0823190602401602060405180830381865afa1580156105cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f0919061105e565b90506105fe87333087610abe565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610645573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610669919061105e565b90506106758282611077565b9250600083116106d75760405162461bcd60e51b815260206004820152602760248201527f4e4f5f46524f4d5f544f4b454e5f5452414e534645525f544f5f544849535f4360448201526613d395149050d560ca1b6064820152608401610284565b7f45f377f845e1cc76ae2c08f990e15d58bcb732db46f92a4852b956580c3a162f8888338989896040516107109695949392919061109e565b60405180910390a150506001600055505050505050565b6001546001600160a01b031633146107515760405162461bcd60e51b815260040161028490611029565b6001600160a01b0382166107a75760405162461bcd60e51b815260206004820152601e60248201527f44455354494e4154494f4e5f43414e4e545f42455f305f4144445245535300006044820152606401610284565b6001600160a01b0383166107f35760405162461bcd60e51b81526020600482015260136024820152720544f4b454e5f4d5553545f4e4f545f42455f3606c1b6044820152606401610284565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e919061105e565b9050818110156108b05760405162461bcd60e51b815260206004820152601e60248201527f414d4f554e545f43414e4e545f4d4f52455f5448414e5f42414c414e434500006044820152606401610284565b6108bb848484610bee565b604080516001600160a01b0386168152602081018490527f7bf0873174a9cc6b28e039b52e74903dd59d650205f32748e3c3dd6b9918ea87910160405180910390a150505050565b6001546001600160a01b0316331461092d5760405162461bcd60e51b815260040161028490611029565b6001600160a01b0381166109925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610284565b61099b81610a6c565b50565b604080516000808252602082019092526001600160a01b0384169083906040516109c891906110f1565b60006040518083038185875af1925050503d8060008114610a05576040519150601f19603f3d011682016040523d82523d6000602084013e610a0a565b606091505b5050905080610a675760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152608401610284565b505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691610b2291906110f1565b6000604051808303816000865af19150503d8060008114610b5f576040519150601f19603f3d011682016040523d82523d6000602084013e610b64565b606091505b5091509150818015610b8e575080511580610b8e575080806020019051810190610b8e919061110d565b610be65760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b6064820152608401610284565b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610c4a91906110f1565b6000604051808303816000865af19150503d8060008114610c87576040519150601f19603f3d011682016040523d82523d6000602084013e610c8c565b606091505b5091509150818015610cb6575080511580610cb6575080806020019051810190610cb6919061110d565b610d025760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610284565b5050505050565b60005b83811015610d24578181015183820152602001610d0c565b50506000910152565b60008151808452610d45816020860160208601610d09565b601f01601f19169290920160200192915050565b602081526000610d6c6020830184610d2d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d9a57600080fd5b813567ffffffffffffffff80821115610db557610db5610d73565b604051601f8301601f19908116603f01168101908282118183101715610ddd57610ddd610d73565b81604052838152866020858801011115610df657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610e2b57600080fd5b833567ffffffffffffffff80821115610e4357600080fd5b610e4f87838801610d89565b94506020860135915080821115610e6557600080fd5b50610e7286828701610d89565b925050604084013590509250925092565b80356001600160a01b0381168114610e9a57600080fd5b919050565b60008060408385031215610eb257600080fd5b610ebb83610e83565b946020939093013593505050565b600080600080600060a08688031215610ee157600080fd5b610eea86610e83565b9450602086013567ffffffffffffffff80821115610f0757600080fd5b610f1389838a01610d89565b95506040880135915080821115610f2957600080fd5b50610f3688828901610d89565b9598949750949560608101359550608001359392505050565b600080600060608486031215610f6457600080fd5b610f6d84610e83565b9250610f7b60208501610e83565b9150604084013590509250925092565b600060208284031215610f9d57600080fd5b610d6c82610e83565b600181811c90821680610fba57607f821691505b602082108103610fda57634e487b7160e01b600052602260045260246000fd5b50919050565b60a081526000610ff360a0830188610d2d565b6001600160a01b038716602084015282810360408401526110148187610d2d565b60608401959095525050608001529392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561107057600080fd5b5051919050565b8181038181111561109857634e487b7160e01b600052601160045260246000fd5b92915050565b600060018060a01b03808916835260c060208401526110c060c0840189610d2d565b818816604085015283810360608501526110da8188610d2d565b608085019690965250505060a00152949350505050565b60008251611103818460208701610d09565b9190910192915050565b60006020828403121561111f57600080fd5b81518015158114610d6c57600080fdfea2646970667358221220483af83e0cdd6d539184ad2d68c0d2d8fd5481c7bfc5545733e382011d80d04d64736f6c63430008120033

Block Transaction Gas Used Reward
view all blocks ##produced##

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Chain Token Portfolio % Price Amount Value
ETH11.84%$1,870.930.1029$192.5
ETH8.79%$71.482$142.96
ETH5.07%$0.99942982.4567$82.41
ETH3.45%$1,870.930.03$56.13
ETH3.07%$0.99940650$49.97
ETH2.83%$0.0000068,020,827.8906$46.04
AVAX15.14%$0.999792246.2397$246.19
AVAX6.07%$0.99962598.8232$98.79
AVAX1.41%$16.361.4$22.91
POL11.83%$0.205765935.02$192.39
POL10.12%$0.999429164.621$164.53
BASE9.39%$0.999792152.7535$152.72
BASE0.12%$1,870.660.001$1.87
BSC7.06%$1.4977.1$114.88
BSC0.52%$532.560.016$8.52
BSC0.35%$1,885.170.003$5.66
BSC0.31%$0.9994295$5
ARB1.49%$0.99979224.2283$24.22
ARB0.46%$1,869.430.004$7.48
OP0.61%$0.9994299.85$9.84
OP0.09%$1,870.840.00080001$1.5
FTM<0.01%$0.42860.0003$0.000129
[ Download: CSV Export  ]
[ 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.