Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
12807547 | 14 hrs ago | 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
Contract Source Code (Solidity Standard Json-Input format)
// 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 {} }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 11.84% | $1,870.93 | 0.1029 | $192.5 | |
ETH | 8.79% | $71.48 | 2 | $142.96 | |
ETH | 5.07% | $0.999429 | 82.4567 | $82.41 | |
ETH | 3.45% | $1,870.93 | 0.03 | $56.13 | |
ETH | 3.07% | $0.999406 | 50 | $49.97 | |
ETH | 2.83% | $0.000006 | 8,020,827.8906 | $46.04 | |
AVAX | 15.14% | $0.999792 | 246.2397 | $246.19 | |
AVAX | 6.07% | $0.999625 | 98.8232 | $98.79 | |
AVAX | 1.41% | $16.36 | 1.4 | $22.91 | |
POL | 11.83% | $0.205765 | 935.02 | $192.39 | |
POL | 10.12% | $0.999429 | 164.621 | $164.53 | |
BASE | 9.39% | $0.999792 | 152.7535 | $152.72 | |
BASE | 0.12% | $1,870.66 | 0.001 | $1.87 | |
BSC | 7.06% | $1.49 | 77.1 | $114.88 | |
BSC | 0.52% | $532.56 | 0.016 | $8.52 | |
BSC | 0.35% | $1,885.17 | 0.003 | $5.66 | |
BSC | 0.31% | $0.999429 | 5 | $5 | |
ARB | 1.49% | $0.999792 | 24.2283 | $24.22 | |
ARB | 0.46% | $1,869.43 | 0.004 | $7.48 | |
OP | 0.61% | $0.999429 | 9.85 | $9.84 | |
OP | 0.09% | $1,870.84 | 0.00080001 | $1.5 | |
FTM | <0.01% | $0.4286 | 0.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.