// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.2.0) (proxy/beacon/BeaconProxy.sol)
pragma solidity ^0.8.22;
import {IBeacon} from "./IBeacon.sol";
import {Proxy} from "../Proxy.sol";
import {ERC1967Utils} from "../ERC1967/ERC1967Utils.sol";
/**
* @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.
*
* The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an
* immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by
* https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] so that it can be accessed externally.
*
* CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust
* the beacon to not upgrade the implementation maliciously.
*
* IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in
* an inconsistent state where the beacon storage slot does not match the beacon address.
*/
contract BeaconProxy is Proxy {
// An immutable address for the beacon to avoid unnecessary SLOADs before each delegate call.
address private immutable _beacon;
/**
* @dev Initializes the proxy with `beacon`.
*
* If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This
* will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity
* constructor.
*
* Requirements:
*
* - `beacon` must be a contract with the interface {IBeacon}.
* - If `data` is empty, `msg.value` must be zero.
*/
constructor(address beacon, bytes memory data) payable {
ERC1967Utils.upgradeBeaconToAndCall(beacon, data);
_beacon = beacon;
}
/**
* @dev Returns the current implementation address of the associated beacon.
*/
function _implementation() internal view virtual override returns (address) {
return IBeacon(_getBeacon()).implementation();
}
/**
* @dev Returns the beacon.
*/
function _getBeacon() internal view virtual returns (address) {
return _beacon;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "beacon",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"stateMutability": "payable"
},
{
"name": "AddressEmptyCode",
"type": "error",
"inputs": [
{
"name": "target",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1967InvalidBeacon",
"type": "error",
"inputs": [
{
"name": "beacon",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1967InvalidImplementation",
"type": "error",
"inputs": [
{
"name": "implementation",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1967NonPayable",
"type": "error",
"inputs": []
},
{
"name": "FailedCall",
"type": "error",
"inputs": []
},
{
"name": "BeaconUpgraded",
"type": "event",
"inputs": [
{
"name": "beacon",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "fallback",
"stateMutability": "payable"
}
][
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"name": "BagsFeeShare_AlreadyInitialized",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_BondingCurveAlreadySet",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_BpsSumInvalid",
"type": "error",
"inputs": [
{
"name": "sum",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsFeeShare_ClaimerHasUnpaid",
"type": "error",
"inputs": [
{
"name": "claimer",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "BagsFeeShare_DuplicateClaimer",
"type": "error",
"inputs": [
{
"name": "claimer",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "BagsFeeShare_LenMismatch",
"type": "error",
"inputs": [
{
"name": "claimersLength",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "bpsLength",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsFeeShare_NoClaimers",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_NoPartner",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_NotAuthorized",
"type": "error",
"inputs": [
{
"name": "caller",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "BagsFeeShare_NothingToClaim",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_PartnerIsClaimer",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_SendFailed",
"type": "error",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsFeeShare_TooManyClaimers",
"type": "error",
"inputs": [
{
"name": "length",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "max",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsFeeShare_ZeroBondingCurve",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_ZeroClaimer",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_ZeroHook",
"type": "error",
"inputs": []
},
{
"name": "BagsFeeShare_ZeroWETH",
"type": "error",
"inputs": []
},
{
"name": "InvalidInitialization",
"type": "error",
"inputs": []
},
{
"name": "NotInitializing",
"type": "error",
"inputs": []
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "BondingCurveSet",
"type": "event",
"inputs": [
{
"name": "bondingCurve",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "Claimed",
"type": "event",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "unwrap",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "ClaimersUpdated",
"type": "event",
"inputs": [
{
"name": "claimers",
"type": "address[]",
"indexed": false,
"internalType": "address[]"
},
{
"name": "bps",
"type": "uint16[]",
"indexed": false,
"internalType": "uint16[]"
}
],
"anonymous": false
},
{
"name": "FeeNotified",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Initialized",
"type": "event",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PartnerFeeNotified",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "SweepFailed",
"type": "event",
"inputs": [
{
"name": "hook",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PARTNER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "WETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "bondingCurve",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "claim",
"type": "function",
"inputs": [
{
"name": "unwrap",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "claimable",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "claimerBps",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "claimers",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "getClaimers",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "addrs",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "bps",
"type": "uint16[]",
"internalType": "uint16[]"
}
],
"stateMutability": "view"
},
{
"name": "hook",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "initialize",
"type": "function",
"inputs": [
{
"name": "_weth",
"type": "address",
"internalType": "address"
},
{
"name": "admin",
"type": "address",
"internalType": "address"
},
{
"name": "_partner",
"type": "address",
"internalType": "address"
},
{
"name": "_claimers",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "_bps",
"type": "uint16[]",
"internalType": "uint16[]"
},
{
"name": "hook_",
"type": "address",
"internalType": "address"
},
{
"name": "poolId_",
"type": "bytes32",
"internalType": "PoolId"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "notifyFee",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "notifyPartnerFee",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "poolId",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "PoolId"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setBondingCurve",
"type": "function",
"inputs": [
{
"name": "_bondingCurve",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setClaimers",
"type": "function",
"inputs": [
{
"name": "_claimers",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "_bps",
"type": "uint16[]",
"internalType": "uint16[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60806040819052635c60da1b60e01b81526020906004817f000000000000000000000000dff07d39c5332c602e06fa64f0a97c92fd8537e06001600160a01b03165afa801560a2575f901560d1575060203d602011609c575b601f19601f820116608001906080821067ffffffffffffffff83111760885760849160405260800160ad565b60d1565b634e487b7160e01b5f52604160045260245ffd5b503d6058565b6040513d5f823e3d90fd5b602090607f19011260cd576080516001600160a01b038116810360cd5790565b5f80fd5b5f8091368280378136915af43d5f803e1560e9573d5ff35b3d5ffdfea26469706673582212205f87a11aef2d05829cba3b08c4a4247afd1a62e1e380ab0a0bc1efe024f1195164736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
WETH (WETH) | WETH | 0.006165 | $1,903.37 | $11.73 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x4177bd…308d69 | 9 days agoSat, 08 Aug 2026 14:24:44 UTC | 0xfa8256…2dcc | [0] 0x000000000000…02417ea4 data: 0x000000000000000000…00000001 |
| 0x678080…63bfa9 | 26 days agoWed, 22 Jul 2026 22:56:37 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…dae4758d |
| 0x678080…63bfa9 | 26 days agoWed, 22 Jul 2026 22:56:37 UTC | 0xb302de…76a1 | data: 0x000000000000000000…6b91d635 |
| 0x2e0c2c…dc25d6 | 26 days agoWed, 22 Jul 2026 22:56:37 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…2e426b72 |
| 0x2e0c2c…dc25d6 | 26 days agoWed, 22 Jul 2026 22:56:37 UTC | 0xb302de…76a1 | data: 0x000000000000000000…b909adcb |
| 0xb1457a…473312 | 26 days agoWed, 22 Jul 2026 22:56:33 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…53721600 |
| 0xb1457a…473312 | 26 days agoWed, 22 Jul 2026 22:56:33 UTC | 0xb302de…76a1 | data: 0x000000000000000000…4dc85800 |
| 0xff7d3f…90d1ec | 26 days agoWed, 22 Jul 2026 22:56:32 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…caca7c00 |
| 0xff7d3f…90d1ec | 26 days agoWed, 22 Jul 2026 22:56:32 UTC | 0xb302de…76a1 | data: 0x000000000000000000…2b29f000 |
| 0xc65618…f21255 | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…ab81280a |
| 0xc65618…f21255 | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0xb302de…76a1 | data: 0x000000000000000000…ae04a02b |
| 0xc0e9f9…bdcfba | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…0b8e3ff5 |
| 0xc0e9f9…bdcfba | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0xb302de…76a1 | data: 0x000000000000000000…2e38ffd5 |
| 0x0f35be…af252f | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…5b87b3ff |
| 0x0f35be…af252f | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0xb302de…76a1 | data: 0x000000000000000000…6e1ed000 |
| 0x5a0f7b…da0bcd | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…8731a800 |
| 0x5a0f7b…da0bcd | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0xb302de…76a1 | data: 0x000000000000000000…1cc6a000 |
| 0x87a3b2…34137d | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…8731a800 |
| 0x87a3b2…34137d | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0xb302de…76a1 | data: 0x000000000000000000…1cc6a000 |
| 0xf53f6d…273d4c | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…8731a800 |
| 0xf53f6d…273d4c | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0xb302de…76a1 | data: 0x000000000000000000…1cc6a000 |
| 0x26d740…951f8d | 26 days agoWed, 22 Jul 2026 22:37:09 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…42f477ff |
| 0x26d740…951f8d | 26 days agoWed, 22 Jul 2026 22:37:09 UTC | 0xb302de…76a1 | data: 0x000000000000000000…0bd1e000 |
| 0xa795e4…c9681f | 26 days agoWed, 22 Jul 2026 22:36:50 UTC | 0x20a0f3…6464 | data: 0x000000000000000000…7dca7000 |
| 0xa795e4…c9681f | 26 days agoWed, 22 Jul 2026 22:36:50 UTC | 0xb302de…76a1 | data: 0x000000000000000000…f729c000 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x4177bd…308d69 | claim | 31,143,059 | 9 days agoSat, 08 Aug 2026 14:24:44 UTC | 0x7bef…7ea4 | IN | BagsFeeShare | $0.000 ETH | 0.00000239 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x4177bdd7…308d69 | Transfer | 31,143,059 | 9 days agoSat, 08 Aug 2026 14:24:44 UTC | 0x9839…274a | OUT | 0x0000…0000 | 0.001541 WETH | WETH (WETH) | |
| 0x6780807f…63bfa9 | Transfer | 16,801,665 | 26 days agoWed, 22 Jul 2026 22:56:37 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000146 WETH | WETH (WETH) | |
| 0x2e0c2cee…dc25d6 | Transfer | 16,801,661 | 26 days agoWed, 22 Jul 2026 22:56:37 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000617 WETH | WETH (WETH) | |
| 0xb1457abc…473312 | Transfer | 16,801,618 | 26 days agoWed, 22 Jul 2026 22:56:33 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000160 WETH | WETH (WETH) | |
| 0xff7d3ff3…90d1ec | Transfer | 16,801,616 | 26 days agoWed, 22 Jul 2026 22:56:32 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000618 WETH | WETH (WETH) | |
| 0xc65618f9…f21255 | Transfer | 16,792,120 | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000384 WETH | WETH (WETH) | |
| 0xc0e9f97b…bdcfba | Transfer | 16,792,120 | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000424 WETH | WETH (WETH) | |
| 0x0f35be1c…af252f | Transfer | 16,792,120 | 26 days agoWed, 22 Jul 2026 22:40:39 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000404 WETH | WETH (WETH) | |
| 0x5a0f7b92…da0bcd | Transfer | 16,790,080 | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000412 WETH | WETH (WETH) | |
| 0x87a3b282…34137d | Transfer | 16,790,080 | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000412 WETH | WETH (WETH) | |
| 0xf53f6d12…273d4c | Transfer | 16,790,080 | 26 days agoWed, 22 Jul 2026 22:37:16 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.000412 WETH | WETH (WETH) | |
| 0x26d74041…951f8d | Transfer | 16,790,019 | 26 days agoWed, 22 Jul 2026 22:37:09 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.001837 WETH | WETH (WETH) | |
| 0xa795e475…c9681f | Transfer | 16,789,822 | 26 days agoWed, 22 Jul 2026 22:36:50 UTC | 0xd631…c107 | IN | 0x9839…274a | 0.001875 WETH | WETH (WETH) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 31,143,059 | 9 days agoSat, 08 Aug 2026 14:24:44 UTC | 0x4177bd…308d69 | CALL | claim | 0x9839…274a | OUT | 0x7bef…7ea4 | 0.00154 ETH |
| 31,143,059 | 9 days agoSat, 08 Aug 2026 14:24:44 UTC | 0x4177bd…308d69 | DELEGATECALL | claim | 0x9839…274a | OUT | 0xd169…8a1a | 0.00154 ETH |
| 31,143,059 | 9 days agoSat, 08 Aug 2026 14:24:44 UTC | 0x4177bd…308d69 | CALL | claim | 0x0bd7…ad73 | IN | 0x9839…274a | 0.00154 ETH |
| 16,789,822 | 26 days agoWed, 22 Jul 2026 22:36:50 UTC | 0xa795e4…c9681f | CREATE | createAndBuy | 0xe8cc…cb37 | IN | 0x9839…274a | 0 ETH |