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