Address Contract Partially Verified
Address
0x2222280094128761043E1e2477a35496EbCb97eA
Balance
0 ETH
Nonce
1
Code Size
2592 bytes
Creator
0x404D0B6A...f6e7 at tx 0x568c65aa...3a04b8
Indexed Transactions
0
Contract Bytecode
2592 bytes
0x608060405260043610610020575f3560e01c80636f57caa51461018e575f5ffd5b3661018a57604051636f57caa560e01b8152336004820152738009480094a0abe9af54998f9c18a4eacfabc1be90636f57caa590602401602060405180830381865afa158015610072573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061009691906106f3565b1580156100b25750335f9081526020819052604090205460ff16155b15610125576100c0336101d0565b1580156100d3575066b1a2bc2ec5000034105b156101255760405162461bcd60e51b815260206004820152601f60248201527f4741535f41495244524f505f414d4f554e545f494e53554646494349454e540060448201526064015b60405180910390fd5b61012e336104d1565b478015610188576040515f90339083908381818185875af1925050503d805f8114610174576040519150601f19603f3d011682016040523d82523d5f602084013e610179565b606091505b5050905080610186575f5ffd5b505b005b5f5ffd5b348015610199575f5ffd5b506101bc6101a8366004610719565b5f6020819052908152604090205460ff1681565b604051901515815260200160405180910390f35b604080517e030100110100000000000000000000000000004e200100310200000000000060208201526503782dace9d960921b603a8201526001600160a01b038316604a80830191909152825180830390910181525f606a8301818152608a8401948590526307e65f1160e51b9094529278030100110100000000000000000000000000004e200100310292670de0b6b3a7640000929185917326da582889f59eaae9da1f063be0140cd93e6a4f9163fccbe220916102979161769a918790608e0161076d565b602060405180830381865afa9250505080156102d0575060408051601f3d908101601f191682019092526102cd918101906107a7565b60015b61031b575f15157f1d8086623c4498f9291905e60751e04b4e1f82c0fa9fb9f28715c8c14a7c96ae84886040516103089291906107be565b60405180910390a2505f95945050505050565b90508047101561036d5760405162461bcd60e51b815260206004820152601c60248201527f4252494447455f424552415f4645455f494e53554646494349454e5400000000604482015260640161011c565b6040805160018082528183019092525f916020808301908036833750508151919250506001600160801b038516613b4d60e11b179082905f906103b2576103b26107e0565b60209081029190910101526040516344d140db60e11b81527326da582889f59eaae9da1f063be0140cd93e6a4f906389a281b69084906103f89085908c906004016107f4565b5f604051808303818588803b15801561040f575f5ffd5b505af193505050508015610421575060015b61046d575f15157f1d8086623c4498f9291905e60751e04b4e1f82c0fa9fb9f28715c8c14a7c96ae85896040516104599291906107be565b60405180910390a2505f9695505050505050565b335f9081526020819052604090819020805460ff1916600190811790915590517f1d8086623c4498f9291905e60751e04b4e1f82c0fa9fb9f28715c8c14a7c96ae906104bc9087908b906107be565b60405180910390a25060019695505050505050565b6040805160e08101825261769a81526001600160a01b038316602080830191909152478284018190526060830181905283515f808252818401865260808501919091528451818152808401865260a08501528451818152928301855260c08401929092529251633b6f743b60e01b81527377b2043768d28e9c9ab44e1abfc95944bce5793190633b6f743b9061056d90859085906004016108cb565b6040805180830381865afa158015610587573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ab91906108ee565b805190915083116105fe5760405162461bcd60e51b815260206004820152601c60248201527f4252494447455f574554485f4645455f494e53554646494349454e5400000000604482015260640161011c565b805161060a908461095d565b604083018190526103e890610621906103e3610976565b61062b919061098d565b606083015260405163c7c7f5b360e01b81527377b2043768d28e9c9ab44e1abfc95944bce579319063c7c7f5b390859061066d90869086908a906004016109ac565b5f604051808303818588803b158015610684575f5ffd5b505af1158015610696573d5f5f3e3d5ffd5b50505050604083810151606080860151835192835260208301526001600160a01b038816928201929092527f99a072328ea6cc303efb8a0c96ff991189806947051f2c24d128ebb2201fb80392500160405180910390a150505050565b5f60208284031215610703575f5ffd5b81518015158114610712575f5ffd5b9392505050565b5f60208284031215610729575f5ffd5b81356001600160a01b0381168114610712575f5ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b63ffffffff84168152606060208201525f61078b606083018561073f565b828103604084015261079d818561073f565b9695505050505050565b5f602082840312156107b7575f5ffd5b5051919050565b6001600160801b039290921682526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b604080825283519082018190525f9060208501906060840190835b8181101561082d57835183526020938401939092019160010161080f565b50506001600160a01b039490941660209390930192909252509092915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301525f608082015160e0608085015261088f60e085018261073f565b905060a083015184820360a08601526108a8828261073f565b91505060c083015184820360c08601526108c2828261073f565b95945050505050565b604081525f6108dd604083018561084d565b905082151560208301529392505050565b5f60408284031280156108ff575f5ffd5b506040805190810167ffffffffffffffff8111828210171561092f57634e487b7160e01b5f52604160045260245ffd5b604052825181526020928301519281019290925250919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561097057610970610949565b92915050565b808202811582820484141761097057610970610949565b5f826109a757634e487b7160e01b5f52601260045260245ffd5b500490565b608081525f6109be608083018661084d565b8451602084810191909152909401516040830152506001600160a01b039190911660609091015291905056fea26469706673582212203c6e03fcae0fd36b45ee5f35652cab42aad996a539542c6e9d60b10a063b895164736f6c634300081c0033
Verified Source Code Partial Match
Compiler: v0.8.28+commit.7893614a
EVM: cancun
Optimization: Yes (200 runs)
BerachainBridgeV2.sol 128 lines
/*
Name: Berachain Mainnet
RPC: https://berachain.leakedrpc.chipswap.org
ChainID: 80094
Symbol: BERA
Swap: https://chipswap.org
X: https://x.com/ChipSwap_EVM
Telegram: https://t.me/ChipSwap_EVM
BerachainBridgeV2: 0x2222280094128761043E1e2477a35496EbCb97eA
Send $ETH to birdge your funds:
- You'll get a bit of $BERA as gas and the remaining will be $WETH
- $WETH on Berachain: 0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590
The $BERA gas in Gas.zip bridge may be drained:
- When $BERA drained, you need to bridge no less than 0.05 $ETH and we'll airdrop 0.01 $BERA to you as gas.
- When $BERA available, you can bridge any amount you'd like. The bridge will work as V1.
*/
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.28;
contract BerachainBridgeV2 {
event BERADeposit(bool indexed success, uint256 amount, address to);
event WETHDeposited(uint256 amountLD, uint256 minAmountLD, address to);
uint32 constant _dstEid = 30362;
bytes constant _emptyData = new bytes(0);
address constant _berachainBridgeV1 = 0x8009480094A0AbE9af54998F9c18a4EAcFaBc1BE;
address constant _beraBridge = 0x26DA582889f59EaaE9dA1f063bE0140CD93E6a4f;
address constant _wethBridge = 0x77b2043768d28E9C9aB44E1aBfC95944bcE57931;
mapping(address => bool) public beraBridged;
receive() external payable {
if (!IBerachainBridge(_berachainBridgeV1).beraBridged(msg.sender) && !beraBridged[msg.sender]) {
if (!_bridgeBERA(msg.sender) && msg.value < 50000000000000000) {
revert("GAS_AIRDROP_AMOUNT_INSUFFICIENT");
}
}
_bridgeWETH(msg.sender);
uint256 selfBalance = address(this).balance;
if (selfBalance > 0) {
(bool success, ) = msg.sender.call{value: selfBalance}("");
require(success);
}
}
function _bridgeBERA(address to) private returns (bool bridged) {
uint208 _optionsLeft = 0x00030100110100000000000000000000000000004e2001003102;
uint128 _beraAmount = 1000000000000000000;
bytes memory options = abi.encodePacked(_optionsLeft, _beraAmount, bytes32(uint256(uint160(to))));
uint256 nativeFee;
try IBERABridge(_beraBridge).quote(_dstEid, _emptyData, options) returns (uint256 nativeFee_) {
nativeFee = nativeFee_;
} catch {
emit BERADeposit(false, _beraAmount, to);
return false;
}
require(address(this).balance >= nativeFee, "BRIDGE_BERA_FEE_INSUFFICIENT");
uint256[] memory depositParams = new uint256[](1);
depositParams[0] = uint256(_dstEid) << 224 | uint224(_beraAmount);
try IBERABridge(_beraBridge).sendDeposits{value: nativeFee}(depositParams, to) { } catch {
emit BERADeposit(false, _beraAmount, to);
return false;
}
beraBridged[msg.sender] = true;
emit BERADeposit(true, _beraAmount, to);
return true;
}
function _bridgeWETH(address to) private {
uint256 selfBalance = address(this).balance;
IWETHBridge.SendParam memory sendParam = IWETHBridge.SendParam({
dstEid: _dstEid,
to: bytes32(uint256(uint160(to))),
amountLD: selfBalance,
minAmountLD: selfBalance,
extraOptions: _emptyData,
composeMsg: _emptyData,
oftCmd: _emptyData
});
IWETHBridge.MessagingFee memory messagingFee = IWETHBridge(_wethBridge).quoteSend(sendParam, false);
require(selfBalance > messagingFee.nativeFee, "BRIDGE_WETH_FEE_INSUFFICIENT");
sendParam.amountLD = selfBalance - messagingFee.nativeFee;
sendParam.minAmountLD = sendParam.amountLD * 995 / 1000;
IWETHBridge(_wethBridge).send{value: selfBalance}(sendParam, messagingFee, to);
emit WETHDeposited(sendParam.amountLD, sendParam.minAmountLD, to);
}
}
interface IBerachainBridge {
function beraBridged(address user) external view returns (bool);
}
interface IBERABridge {
function quote(uint32 dstEid, bytes calldata message, bytes memory options) external view returns (uint256 nativeFee);
function sendDeposits(uint256[] calldata depositParams, address to) external payable;
}
interface IWETHBridge {
struct SendParam {
uint32 dstEid;
bytes32 to;
uint256 amountLD;
uint256 minAmountLD;
bytes extraOptions;
bytes composeMsg;
bytes oftCmd;
}
struct MessagingFee {
uint256 nativeFee;
uint256 lzTokenFee;
}
function quoteSend(SendParam calldata sendParam, bool payInLzToken) external view returns (MessagingFee memory);
function send(SendParam calldata sendParam, MessagingFee calldata fee, address refundAddress) external payable;
}
Read Contract
beraBridged 0x6f57caa5 → bool
Recent Transactions
No transactions found for this address