Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 93 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 15122611 | 835 days ago | IN | 0 ETH | 0.00556151 | ||||
Deposit | 15121999 | 835 days ago | IN | 0 ETH | 0.00160603 | ||||
Deposit | 15034195 | 849 days ago | IN | 0 ETH | 0.00109224 | ||||
Deposit | 14914180 | 870 days ago | IN | 0 ETH | 0.00169605 | ||||
Deposit | 14781691 | 892 days ago | IN | 0 ETH | 0.00120579 | ||||
Deposit | 14732476 | 900 days ago | IN | 0 ETH | 0.00117744 | ||||
Deposit | 14730004 | 900 days ago | IN | 0 ETH | 0.00161241 | ||||
Deposit | 14581292 | 924 days ago | IN | 0 ETH | 0.00169236 | ||||
Deposit | 14517148 | 934 days ago | IN | 0 ETH | 0.00200262 | ||||
Deposit | 14501367 | 936 days ago | IN | 0 ETH | 0.00440707 | ||||
Deposit | 14491305 | 938 days ago | IN | 0 ETH | 0.0015096 | ||||
Deposit | 14486725 | 938 days ago | IN | 0 ETH | 0.00159925 | ||||
Deposit | 14468289 | 941 days ago | IN | 0 ETH | 0.00104439 | ||||
Deposit | 14448907 | 944 days ago | IN | 0 ETH | 0.00101176 | ||||
Deposit | 14448890 | 944 days ago | IN | 0 ETH | 0.00104684 | ||||
Deposit | 14419223 | 949 days ago | IN | 0 ETH | 0.00108635 | ||||
Deposit | 14418982 | 949 days ago | IN | 0 ETH | 0.00141744 | ||||
Deposit | 14402475 | 951 days ago | IN | 0 ETH | 0.00126793 | ||||
Deposit | 14400692 | 952 days ago | IN | 0 ETH | 0.00206638 | ||||
Deposit | 14396576 | 952 days ago | IN | 0 ETH | 0.00137865 | ||||
Deposit | 14392135 | 953 days ago | IN | 0 ETH | 0.00295735 | ||||
Deposit | 14371717 | 956 days ago | IN | 0 ETH | 0.00070227 | ||||
Deposit | 14367391 | 957 days ago | IN | 0 ETH | 0.00151076 | ||||
Deposit | 14354436 | 959 days ago | IN | 0 ETH | 0.00177532 | ||||
Deposit | 14345957 | 960 days ago | IN | 0 ETH | 0.00111099 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xD1EAd3c5...f518e93E7 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
BitSongBridge
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-15 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } /** * @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() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ERC20Token { string public name; string public symbol; uint8 public decimals; function totalSupply() public virtual view returns (uint); function balanceOf(address tokenOwner) public virtual view returns (uint balance); function allowance(address tokenOwner, address spender) public virtual view returns (uint remaining); function transfer(address to, uint tokens) public virtual returns (bool success); function approve(address spender, uint tokens) public virtual returns (bool success); function transferFrom(address from, address to, uint tokens) public virtual returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } contract BitSongBridge is Pausable, Ownable { event hasBeenAdded( address sender, address recipient, string btsgBech32, uint256 amount, address contractAddress ); address public btsgErc20ContractAddress; address public bridgeWalletAddress; constructor(address _btsgErc20ContractAddress, address _bridgeWalletAddress ) { btsgErc20ContractAddress = _btsgErc20ContractAddress; bridgeWalletAddress = _bridgeWalletAddress; } function deposit( uint256 amount, string memory target ) public whenNotPaused { ERC20Token token = ERC20Token(btsgErc20ContractAddress); require(token.transferFrom(msg.sender, bridgeWalletAddress, amount), "ERC20 token transfer was unsuccessful"); emit hasBeenAdded(msg.sender, bridgeWalletAddress, target, amount, btsgErc20ContractAddress); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function pause() public onlyOwner { _pause(); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function unpause() public onlyOwner { _unpause(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_btsgErc20ContractAddress","type":"address"},{"internalType":"address","name":"_bridgeWalletAddress","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":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"string","name":"btsgBech32","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"}],"name":"hasBeenAdded","type":"event"},{"inputs":[],"name":"bridgeWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"btsgErc20ContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"target","type":"string"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638456cb59116100665780638456cb59146101005780638da5cb5b1461010a578063afcb46021461013e578063f1215d2514610172578063f2fde38b1461023757610093565b80633f4ba83a146100985780635c975abb146100a2578063662201f9146100c2578063715018a6146100f6575b600080fd5b6100a061027b565b005b6100aa610334565b60405180821515815260200191505060405180910390f35b6100ca61034a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100fe610370565b005b6101086104df565b005b610112610598565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101466105c1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102356004803603604081101561018857600080fd5b8101908080359060200190929190803590602001906401000000008111156101af57600080fd5b8201836020820111156101c157600080fd5b803590602001918460018302840111640100000000831117156101e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506105e7565b005b6102796004803603602081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610911565b005b610283610b06565b73ffffffffffffffffffffffffffffffffffffffff166102a1610598565b73ffffffffffffffffffffffffffffffffffffffff161461032a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610332610b0e565b565b60008060009054906101000a900460ff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610378610b06565b73ffffffffffffffffffffffffffffffffffffffff16610396610598565b73ffffffffffffffffffffffffffffffffffffffff161461041f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6104e7610b06565b73ffffffffffffffffffffffffffffffffffffffff16610505610598565b73ffffffffffffffffffffffffffffffffffffffff161461058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610596610bf8565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105ef610334565b15610662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd33600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561073a57600080fd5b505af115801561074e573d6000803e3d6000fd5b505050506040513d602081101561076457600080fd5b81019080805190602001909291905050506107ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d0a6025913960400191505060405180910390fd5b7f558fc4c60cd622d2c9409932b4967ef1abd0564dd2fcb4d534b60d2a329ca68b33600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168486600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156108ce5780820151818401526020810190506108b3565b50505050905090810190601f1680156108fb5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1505050565b610919610b06565b73ffffffffffffffffffffffffffffffffffffffff16610937610598565b73ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ce46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b610b16610334565b610b88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610bcb610b06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b610c00610334565b15610c73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cb6610b06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a156fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243323020746f6b656e207472616e736665722077617320756e7375636365737366756ca2646970667358221220051ea20ee40b6ade2fba58ca5f6fec232ce7d83a6f0e4e481584eeb91641b3a064736f6c63430007060033
Deployed Bytecode Sourcemap
5655:1336:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6923:65;;;:::i;:::-;;1433:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5926:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4277:148;;;:::i;:::-;;6721:61;;;:::i;:::-;;3626:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5880:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6179:398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4580:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6923:65;3857:12;:10;:12::i;:::-;3846:23;;:7;:5;:7::i;:::-;:23;;;3838:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6970:10:::1;:8;:10::i;:::-;6923:65::o:0;1433:86::-;1480:4;1504:7;;;;;;;;;;;1497:14;;1433:86;:::o;5926:34::-;;;;;;;;;;;;;:::o;4277:148::-;3857:12;:10;:12::i;:::-;3846:23;;:7;:5;:7::i;:::-;:23;;;3838:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4384:1:::1;4347:40;;4368:6;;;;;;;;;;;4347:40;;;;;;;;;;;;4415:1;4398:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4277:148::o:0;6721:61::-;3857:12;:10;:12::i;:::-;3846:23;;:7;:5;:7::i;:::-;:23;;;3838:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6766:8:::1;:6;:8::i;:::-;6721:61::o:0;3626:87::-;3672:7;3699:6;;;;;;;;;;;3692:13;;3626:87;:::o;5880:39::-;;;;;;;;;;;;;:::o;6179:398::-;1759:8;:6;:8::i;:::-;1758:9;1750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6291:16:::1;6321:24;;;;;;;;;;;6291:55;;6365:5;:18;;;6384:10;6396:19;;;;;;;;;;;6417:6;6365:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;6357:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6482:87;6495:10;6507:19;;;;;;;;;;;6528:6;6536;6544:24;;;;;;;;;;;6482:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:1;6179:398:::0;;:::o;4580:244::-;3857:12;:10;:12::i;:::-;3846:23;;:7;:5;:7::i;:::-;:23;;;3838:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4689:1:::1;4669:22;;:8;:22;;;;4661:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4779:8;4750:38;;4771:6;;;;;;;;;;;4750:38;;;;;;;;;;;;4808:8;4799:6;;:17;;;;;;;;;;;;;;;;;;4580:244:::0;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;2492:120::-;2036:8;:6;:8::i;:::-;2028:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2561:5:::1;2551:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;2582:22;2591:12;:10;:12::i;:::-;2582:22;;;;;;;;;;;;;;;;;;;;2492:120::o:0;2233:118::-;1759:8;:6;:8::i;:::-;1758:9;1750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:4:::1;2293:7;::::0;:14:::1;;;;;;;;;;;;;;;;;;2323:20;2330:12;:10;:12::i;:::-;2323:20;;;;;;;;;;;;;;;;;;;;2233:118::o:0
Swarm Source
ipfs://051ea20ee40b6ade2fba58ca5f6fec232ce7d83a6f0e4e481584eeb91641b3a0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.