BridgersSwap
0xd0c244c2c680dbc5dff0151a6928151c6f5605df
Verification
Verified
v0.8.30+commit.73712a01
Type
Contract
4,365 bytes
ABI entries
16
3 read · 6 write
License
none
Contract information
- Address
- 0xd0c244c2c680dbc5dff0151a6928151c6f5605df
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.30+commit.73712a01
- Optimization
- Enabled
- Creator
- 0xB9b271574a…b8fa4F6C4c
- Creation tx
- 0x3da7a324ac…45413a74b8
Token
Not a token
This contract does not expose ERC-20 metadata.
Read contract (3)
name() → string
owner() → address
symbol() → string
Events (5)
OwnershipTransferredSwapSwapEthWithdrawETHWithdtraw
ABI
[
{
"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"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./Ownable.sol";
import "./ReentrancyGuard.sol";
import "./SafeMath.sol";
import "./TransferHelper.sol";
contract BridgersSwap is ReentrancyGuard, Ownable {
using SafeMath for uint256;
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.sub(_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 {}
}Chain explorer4824msChain node73ms