SBCDepositContract

Gnosis Browse chains

0x0b98057ea310f4d31f2a452b414647007d1645d9

Proxy implementation: 0x49de1aced385334f1a66d86db363264eb5b6a708

Solidity v0.8.9+commit.e5eed63a

🤖
Query this contract from your AI
Reference: 0x0b98057ea310f4d31f2a452b414647007d1645d9
Sample prompt: "Tell me the current state of gnosis/0x0b98057ea310f4d31f2a452b414647007d1645d9"
No AI wired up yet? → mcp.smarts.md · Browse chains
Gnosis is a docs-only chain on Smarts: source code and ABI are indexed, but live on-chain data (state, recent events, admin profile) is not currently available. AI agents can still query get_contract_info and get_contract_source via MCP.

Overview

Read Functions
7
Write Functions
12
Events
3

Read Functions

get_deposit_count() view

Query the current deposit count.

Returns

Name Type Description
— bytes The deposit count encoded as a little endian 64-bit number.
get_deposit_root() view

Query the current deposit root hash.

Returns

Name Type Description
— bytes32 The deposit root hash.
paused() view

Reports whether the contract is currently paused.✨ AI

dev: Returns true if the contract is paused, and false otherwise.

Returns

Name Type Description
— bool True if the contract is paused, false if it is active.✨ AI
stake_token() view

Return the ERC-20 token contract address that users stake in this contract.✨ AI

Returns

Name Type Description
— address Address of the ERC-20 token accepted for staking.✨ AI
supportsInterface(interfaceId: bytes4) pure

Check whether the contract implements the interface specified by interfaceId.✨ AI

dev: Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.

Parameters

Name Type Description
interfaceId bytes4 ERC-165 interface identifier to query.✨ AI

Returns

Name Type Description
— bool true if the contract implements the given interface; false otherwise.✨ AI
validator_withdrawal_credentials(bytes) view

Return the 32-byte validator withdrawal credentials derived from the given input.✨ AI

Parameters

Name Type Description
— bytes

Returns

Name Type Description
— bytes32 Bytes32 withdrawal credentials computed from the provided input.✨ AI
withdrawableAmount(address) view

Returns the amount the specified address can currently withdraw from the contract.✨ AI

Parameters

Name Type Description
— address

Returns

Name Type Description
— uint256 The withdrawable amount for the address as a uint256 (in the token's smallest unit, e.g., wei).✨ AI

Write Functions

batchDeposit(pubkeys: bytes, withdrawal_credentials: bytes, signatures: bytes, deposit_data_roots: bytes32[], amounts: uint256[]) nonpayable

Submit multiple validator deposits to the contract in a single transaction.✨ AI

Parameters

Name Type Description
pubkeys bytes Concatenated validator public keys (48 bytes per pubkey).✨ AI
withdrawal_credentials bytes Concatenated 32-byte withdrawal credentials for each validator.✨ AI
signatures bytes Concatenated BLS signatures (96 bytes per signature) for each deposit.✨ AI
deposit_data_roots bytes32[] Array of bytes32 deposit_data_root values, one per deposit.✨ AI
amounts uint256[]
batchDeposit(pubkeys: bytes, withdrawal_credentials: bytes, signatures: bytes, deposit_data_roots: bytes32[]) nonpayable

Submit multiple validator deposits to the contract in a single transaction.✨ AI

Parameters

Name Type Description
pubkeys bytes Concatenated validator public keys (48 bytes per pubkey).✨ AI
withdrawal_credentials bytes Concatenated 32-byte withdrawal credentials for each validator.✨ AI
signatures bytes Concatenated BLS signatures (96 bytes per signature) for each deposit.✨ AI
deposit_data_roots bytes32[] Array of bytes32 deposit_data_root values, one per deposit.✨ AI
claimTokens(_token: address, _to: address) nonpayable

Transfer any ERC20 tokens held by the contract to a specified recipient.✨ AI

dev: Allows to transfer any locked token from this contract. Only admin can call this method. Deposit-related tokens cannot be claimed.

Parameters

Name Type Description
_token address address of the token, if it is not provided (0x00..00), native coins will be transferred.
_to address address that will receive the locked tokens from this contract.
claimWithdrawal(_address: address) nonpayable

Claim a pending withdrawal for the specified address and transfer any available funds to it.✨ AI

dev: Claim withdrawal amount for an address

Parameters

Name Type Description
_address address Address to transfer withdrawable tokens
claimWithdrawals(_addresses: address[]) nonpayable

Claim pending withdrawals for the provided addresses, executing any available withdrawal operations for each.✨ AI

dev: Claim withdrawal amounts for an array of addresses

Parameters

Name Type Description
_addresses address[] Addresses to transfer withdrawable tokens
deposit(pubkey: bytes, withdrawal_credentials: bytes, signature: bytes, deposit_data_root: bytes32, stake_amount: uint256) nonpayable

Submit a Phase 0 DepositData object.

Parameters

Name Type Description
pubkey bytes A BLS12-381 public key.
withdrawal_credentials bytes Commitment to a public key for withdrawals.
signature bytes A BLS12-381 signature.
deposit_data_root bytes32 The SHA-256 hash of the SSZ-encoded DepositData object. Used as a protection against malformed input.
stake_amount uint256
executeSystemWithdrawals(_amounts: uint64[], _addresses: address[]) nonpayable

Execute multiple system withdrawals in a single transaction.✨ AI

dev: Function to be used only in the system transaction. Call to this function will revert only in three cases: - the caller is not `SYSTEM_WITHDRAWAL_EXECUTOR` or `_admin()`; - the length of `_amounts` array is not equal to the length of `_addresses` array; - it is a reentrant access to failed withdrawals processing; - the call ran out of gas. Call to this function doesn't transmit flow control to any untrusted contract and uses a constant gas limit for each withdrawal, so using constant gas limit and constant number of withdrawals (including failed withdrawals) for calls of this function is ok.

Parameters

Name Type Description
_amounts uint64[] Array of amounts to be withdrawn.
_addresses address[] Array of addresses that should receive the corresponding amount of tokens.
executeSystemWithdrawals(uint256, _amounts: uint64[], _addresses: address[]) nonpayable

Execute multiple system withdrawals in a single transaction.✨ AI

dev: Function to be used only in the system transaction. Call to this function will revert only in three cases: - the caller is not `SYSTEM_WITHDRAWAL_EXECUTOR` or `_admin()`; - the length of `_amounts` array is not equal to the length of `_addresses` array; - it is a reentrant access to failed withdrawals processing; - the call ran out of gas. Call to this function doesn't transmit flow control to any untrusted contract and uses a constant gas limit for each withdrawal, so using constant gas limit and constant number of withdrawals (including failed withdrawals) for calls of this function is ok.

Parameters

Name Type Description
— uint256
_amounts uint64[] Array of amounts to be withdrawn.
_addresses address[] Array of addresses that should receive the corresponding amount of tokens.
onTokenTransfer(address, stake_amount: uint256, data: bytes) nonpayable

Handle incoming token transfers, record the stake, and trigger deposit processing.✨ AI

Parameters

Name Type Description
— address
stake_amount uint256 Amount of tokens transferred and to be staked.✨ AI
data bytes Optional additional calldata provided with the transfer.✨ AI

Returns

Name Type Description
— bool True if the transfer and staking were processed successfully; otherwise false.✨ AI
pause() nonpayable

Pause contract operations, disabling functions protected by pause checks.✨ AI

unpause() nonpayable

Unpauses the contract so functions guarded by pause checks can be executed again.✨ AI

unwrapTokens(_unwrapper: address, _token: address) nonpayable

Unwraps tokens by calling the unwrapper contract to convert wrapped tokens back to their underlying asset.✨ AI

dev: Allows to unwrap the mGNO in this contract to GNO Only admin can call this method.

Parameters

Name Type Description
_unwrapper address address of the mGNO token unwrapper
_token address Address of the wrapped token to be unwrapped.✨ AI

Events

DepositEvent(pubkey: bytes, withdrawal_credentials: bytes, amount: bytes, signature: bytes, index: bytes)

A processed deposit event.

Name Type Indexed Description
pubkey bytes
withdrawal_credentials bytes
amount bytes
signature bytes
index bytes
Paused(account: address)
Name Type Indexed Description
account address
Unpaused(account: address)
Name Type Indexed Description
account address