// 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": [
{
"name": "poolManager",
"type": "address",
"internalType": "address"
},
{
"name": "positionManager",
"type": "address",
"internalType": "address"
},
{
"name": "weth",
"type": "address",
"internalType": "address"
},
{
"name": "vault_",
"type": "address",
"internalType": "address"
},
{
"name": "permit2",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AccessControlBadConfirmation",
"type": "error",
"inputs": []
},
{
"name": "AccessControlUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "neededRole",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"name": "BagsBondingCurve_AlreadyInitialized",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_AlreadyMigrated",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_EconomicsPriceDiscontinuity",
"type": "error",
"inputs": [
{
"name": "lpSide",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "curveSide",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_EconomicsSoldMismatch",
"type": "error",
"inputs": [
{
"name": "soldAtThreshold",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "expected",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_InsufficientQuoteForLP",
"type": "error",
"inputs": [
{
"name": "have",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "need",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_InsufficientTokenForLP",
"type": "error",
"inputs": [
{
"name": "have",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "need",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_InvalidAmounts",
"type": "error",
"inputs": [
{
"name": "amount0",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amount1",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_InvalidPartnerFeeBps",
"type": "error",
"inputs": [
{
"name": "partnerFeeBps",
"type": "uint16",
"internalType": "uint16"
}
]
},
{
"name": "BagsBondingCurve_InvalidRecipient",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_NativeTransferFailed",
"type": "error",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_NoQuoteSent",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_NotAdmin",
"type": "error",
"inputs": [
{
"name": "caller",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "BagsBondingCurve_NotInitialized",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_RefundTransferFailed",
"type": "error",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_SlippageExceeded",
"type": "error",
"inputs": [
{
"name": "minExpected",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "actualOut",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_ThresholdNotReached",
"type": "error",
"inputs": [
{
"name": "have",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "need",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_VaultFeeTransferFailed",
"type": "error",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "BagsBondingCurve_ZeroAddressFeeShare",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressHook",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressPlatformAdmin",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressPoolManager",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressPositionManager",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressToken",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressVault",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroAddressWETH",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroInputAmount",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroThreshold",
"type": "error",
"inputs": []
},
{
"name": "BagsBondingCurve_ZeroVirtualTokenReserve",
"type": "error",
"inputs": []
},
{
"name": "EnforcedPause",
"type": "error",
"inputs": []
},
{
"name": "ExpectedPause",
"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": "SafeCastOverflowedUintDowncast",
"type": "error",
"inputs": [
{
"name": "bits",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "FeesSplit",
"type": "event",
"inputs": [
{
"name": "payer",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "vault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "feeShare",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "vaultFeeQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "creatorFeeWETH",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "partnerFeeWETH",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Initialized",
"type": "event",
"inputs": [
{
"name": "version",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "Initialized",
"type": "event",
"inputs": [
{
"name": "caller",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "realTokenReserves",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Migrated",
"type": "event",
"inputs": [
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "platformAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "lpQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "lpTokens",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "poolId",
"type": "bytes32",
"indexed": false,
"internalType": "PoolId"
},
{
"name": "sqrtPriceX96",
"type": "uint160",
"indexed": false,
"internalType": "uint160"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferStarted",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "Paused",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RoleAdminChanged",
"type": "event",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"name": "RoleGranted",
"type": "event",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RoleRevoked",
"type": "event",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "TokensBought",
"type": "event",
"inputs": [
{
"name": "buyer",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "grossQuoteIn",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "netQuoteIn",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tokensOut",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "feeQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "vaultFeeQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "creatorFeeWETH",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "refundQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "price",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "virtualTokenReserves",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "virtualQuoteReserves",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "TokensSold",
"type": "event",
"inputs": [
{
"name": "seller",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokensIn",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "grossQuoteOut",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "netQuoteToRecipient",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "feeQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "vaultFeeQuote",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "creatorFeeWETH",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "price",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "virtualTokenReserves",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "virtualQuoteReserves",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Unpaused",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ADMIN_ROLE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "DEAD",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "DEFAULT_ADMIN_ROLE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "FEE_SHARE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "HOOK",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IHooks"
}
],
"stateMutability": "view"
},
{
"name": "INITIAL_VIRTUAL_TOKEN_RESERVES",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "LP_TOKEN_AMOUNT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "PERMIT2",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IAllowanceTransfer"
}
],
"stateMutability": "view"
},
{
"name": "POOL_MANAGER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IPoolManager"
}
],
"stateMutability": "view"
},
{
"name": "POSITION_MANAGER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IPositionManager"
}
],
"stateMutability": "view"
},
{
"name": "TOKEN",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "TX_FEE_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "VAULT",
"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": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "bondingProgress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "percent",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "buy",
"type": "function",
"inputs": [
{
"name": "minTokensOut",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "buyFor",
"type": "function",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "minTokensOut",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "creator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "currentPrice",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "price",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "getRoleAdmin",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "getVirtualReserves",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "vToken",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "vQuote",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "grantRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "hasRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "initialVirtualQuoteReserves",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "initialize",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "hook",
"type": "address",
"internalType": "address"
},
{
"name": "initialOwner",
"type": "address",
"internalType": "address"
},
{
"name": "creator_",
"type": "address",
"internalType": "address"
},
{
"name": "feeShare_",
"type": "address",
"internalType": "address"
},
{
"name": "platformAdmin_",
"type": "address",
"internalType": "address"
},
{
"name": "partner_",
"type": "address",
"internalType": "address"
},
{
"name": "partnerFeeBps_",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "thresholdQuote_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "initializeAfterMint",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "initialized",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "lpQuoteAmount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "migrate",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "migrated",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "partner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "partnerFeeBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "pause",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "paused",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "pendingOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "platformAdmin",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "quoteBuy",
"type": "function",
"inputs": [
{
"name": "quoteIn",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "tokensOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeQuote",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "netQuoteIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "grossUsed",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "refundQuote",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "quoteSell",
"type": "function",
"inputs": [
{
"name": "tokensIn",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "quoteToSeller",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeQuote",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "grossQuoteOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "realQuoteReserves",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "realTokenReserves",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "renounceRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "callerConfirmation",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "revokeRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sell",
"type": "function",
"inputs": [
{
"name": "tokensIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minQuoteOut",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sellFor",
"type": "function",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "tokensIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minQuoteOut",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "thresholdQuote",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "unpause",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60806040819052635c60da1b60e01b81526020906004817f0000000000000000000000008dcecaf516c828a493c2c449c1e25f92cf80207e6001600160a01b03165afa801560a2575f901560d1575060203d602011609c575b601f19601f820116608001906080821067ffffffffffffffff83111760885760849160405260800160ad565b60d1565b634e487b7160e01b5f52604160045260245ffd5b503d6058565b6040513d5f823e3d90fd5b602090607f19011260cd576080516001600160a01b038116810360cd5790565b5f80fd5b5f8091368280378136915af43d5f803e1560e9573d5ff35b3d5ffdfea26469706673582212205f87a11aef2d05829cba3b08c4a4247afd1a62e1e380ab0a0bc1efe024f1195164736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| GREEN (GREEN) | GREEN | 1,000,000,000 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xb254c2…7ebd63 | 35 days agoMon, 13 Jul 2026 16:53:11 UTC | 0x813ea2…b80d | [0] 0x000000000000…2ac82370 [1] 0x000000000000…2ac82370 data: 0x000000000000000000…21469b27 |
| 0xb254c2…7ebd63 | 35 days agoMon, 13 Jul 2026 16:53:11 UTC | 0xce1b9f…8076 | [0] 0x000000000000…2ac82370 [1] 0x000000000000…540b83aa [2] 0x000000000000…60ea45ff data: 0x000000000000000000…00000000 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x6d9c6f…36b9 | [0] 0x000000000000…3219cb37 [1] 0x000000000000…2ac82370 data: 0x000000000000000000…25eb9981 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0xce1b9f…8076 | [0] 0x000000000000…3219cb37 [1] 0x000000000000…540b83aa [2] 0x000000000000…60ea45ff data: 0x000000000000000000…00000000 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x25ff68…ce79 | [0] 0x000000000000…3219cb37 data: 0x000000000000000000…e8000000 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0xc7f505…81d2 | data: 0x000000000000000000…00000001 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x2f8788…6f0d | [0] 0xa49807205ce4…93c21775 [1] 0x000000000000…805f9058 [2] 0x000000000000…3219cb37 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x2f8788…6f0d | [0] 0x000000000000…00000000 [1] 0x000000000000…805f9058 [2] 0x000000000000…3219cb37 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…3219cb37 |
| 0xdcacf7…559c22 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x1cf3b0…5d3e | [0] 0x000000000000…cf80207e |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xb254c2…7ebd63 | sell | 8,825,925 | 35 days agoMon, 13 Jul 2026 16:53:11 UTC | 0x1175…2370 | IN | BagsBondingCurve | $0.000 ETH | 0.00001071 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xb254c2b5…7ebd63 | Transfer | 8,825,925 | 35 days agoMon, 13 Jul 2026 16:53:11 UTC | 0x69e5…ba24 | OUT | 0xf7ad…45ff | 0.000055 WETH | WETH (WETH) | |
| 0xb254c2b5…7ebd63 | Transfer | 8,825,925 | 35 days agoMon, 13 Jul 2026 16:53:11 UTC | 0x0000…0000 | IN | 0x69e5…ba24 | 0.000055 WETH | WETH (WETH) | |
| 0xb254c2b5…7ebd63 | Transfer | 8,825,925 | 35 days agoMon, 13 Jul 2026 16:53:11 UTC | 0x1175…2370 | IN | 0x69e5…ba24 | 4,460,463.976204 GREEN | GREEN (GREEN) | |
| 0xdcacf7c1…559c22 | Transfer | 8,825,228 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x69e5…ba24 | OUT | 0xf7ad…45ff | 0.000056 WETH | WETH (WETH) | |
| 0xdcacf7c1…559c22 | Transfer | 8,825,228 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x0000…0000 | IN | 0x69e5…ba24 | 0.000056 WETH | WETH (WETH) | |
| 0xdcacf7c1…559c22 | Transfer | 8,825,228 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x69e5…ba24 | OUT | 0x1175…2370 | 4,460,463.976204 GREEN | GREEN (GREEN) | |
| 0xdcacf7c1…559c22 | Transfer | 8,825,228 | 35 days agoMon, 13 Jul 2026 16:52:01 UTC | 0x0000…0000 | IN | 0x69e5…ba24 | 1,000,000,000.000000 GREEN | GREEN (GREEN) |