HomeBridgeErcToNative

Gnosis Browse chains

0x7301cfa0e1756b71869e93d4e4dca5c7d0eb0aa6

Proxy implementation: 0xe6998b0c03d3cb9ee8c04f266e573c7fa8782846

Solidity v0.4.24+commit.e67f0147

🤖
Query this contract from your AI
Reference: 0x7301cfa0e1756b71869e93d4e4dca5c7d0eb0aa6
Sample prompt: "Tell me the current state of gnosis/0x7301cfa0e1756b71869e93d4e4dca5c7d0eb0aa6"
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
42
Write Functions
23
Events
15

Read Functions

numMessagesSigned(_message: bytes32) view

Returns the number of validator signatures collected for a specific message hash.✨ AI

Parameters

Name Type Description
_message bytes32 Message hash to query the recorded signature count for.✨ AI

Returns

Name Type Description
uint256 Number of validator signatures recorded for the given message hash as a uint256.✨ AI
totalBurntCoins() view

Returns the total amount of ERC tokens permanently burned through this bridge.✨ AI

Returns

Name Type Description
uint256 Total number of tokens permanently burned by the bridge, expressed in the token's smallest units (uint256).✨ AI
signature(_hash: bytes32, _index: uint256) view

Return the signature bytes for the specified message hash and signer index.✨ AI

Parameters

Name Type Description
_hash bytes32 Message hash used to fetch the signature.✨ AI
_index uint256 Signer or validator index identifying which signature to return.✨ AI

Returns

Name Type Description
bytes Signature byte array corresponding to the given hash and index.✨ AI
HASHI_IS_MANDATORY() view

Reports whether HASHI authorization is required.✨ AI

Returns

Name Type Description
bool True if HASHI authorization is mandatory for relevant operations; false if it is optional or disabled.✨ AI
totalSpentPerDay(_day: uint256) view

Return the total amount spent on a given day.✨ AI

Parameters

Name Type Description
_day uint256 Day index (uint256) representing the day bucket to query.✨ AI

Returns

Name Type Description
uint256 Total amount (uint256) spent during the specified day.✨ AI
isInitialized() view

Checks whether the contract has been initialized.✨ AI

Returns

Name Type Description
bool True if the contract has been initialized, otherwise false.✨ AI
getCurrentDay() view

Returns the current day index used by the contract for day-based accounting.✨ AI

Returns

Name Type Description
uint256 Current day index as a uint256, used by the contract for day-based accounting.✨ AI
requiredBlockConfirmations() view

Returns the number of block confirmations required before a deposit is considered final.✨ AI

Returns

Name Type Description
uint256 Number of block confirmations required (uint256) before processing or finalizing a deposit.✨ AI
getBridgeMode() pure

Return the 4-byte identifier that encodes the contract's bridge mode.✨ AI

Returns

Name Type Description
_data bytes4 _data: bytes4 - 4-byte value encoding the bridge mode selector used by the contract.✨ AI
executionDailyLimit() view

Returns the bridge's daily execution limit for native-token transfers.✨ AI

Returns

Name Type Description
uint256 Maximum native-token amount allowed to be executed per day (in wei).✨ AI
message(_hash: bytes32) view

Return the encoded bridge message payload stored for the given hash.✨ AI

Parameters

Name Type Description
_hash bytes32 Hash identifier of the bridged message to retrieve.✨ AI

Returns

Name Type Description
bytes Raw message bytes as stored on-chain (encoded payload); empty bytes if no message exists for the hash.✨ AI
totalExecutedPerDay(_day: uint256) view

Return the total executed amount recorded for the specified day.✨ AI

Parameters

Name Type Description
_day uint256 Index of the day to query (e.g., epoch day number).✨ AI

Returns

Name Type Description
uint256 Total executed amount for the given day, expressed in the contract's smallest token/native unit.✨ AI
blockRewardContract() view

Return the address of the contract that receives block rewards.✨ AI

Returns

Name Type Description
address Address of the block reward recipient contract.✨ AI
dailyLimit() view

Returns the current daily limit for ERC-to-native bridging operations.✨ AI

Returns

Name Type Description
uint256 The maximum total amount allowed for bridging in a 24-hour period, as a uint256.✨ AI
numAffirmationsSigned(_withdrawal: bytes32) view

Returns the number of validator affirmations recorded for the specified withdrawal ID.✨ AI

Parameters

Name Type Description
_withdrawal bytes32 Withdrawal identifier (bytes32) to query.✨ AI

Returns

Name Type Description
uint256 Number of validator affirmations collected for the given withdrawal ID as a uint256.✨ AI
affirmationsSigned(_withdrawal: bytes32) view

Checks whether the given withdrawal hash has been signed (affirmed) on this bridge.✨ AI

Parameters

Name Type Description
_withdrawal bytes32 Withdrawal hash to query for an affirmation.✨ AI

Returns

Name Type Description
bool true if the withdrawal hash has been affirmed (a signature recorded); otherwise false.✨ AI
hashiManager() view

Returns the current hashi manager address.✨ AI

Returns

Name Type Description
address Address of the configured hashi manager contract.✨ AI
withinExecutionLimit(_amount: uint256) view

Checks whether the provided amount is within the contract's current execution limit.✨ AI

Parameters

Name Type Description
_amount uint256 Amount to check against the remaining execution limit.✨ AI

Returns

Name Type Description
bool True if executing _amount would not exceed the current execution limit; otherwise false.✨ AI
executionMaxPerTx() view

Reads the configured maximum amount allowed per execution transaction.✨ AI

Returns

Name Type Description
uint256 Maximum amount allowed for a single execution transaction, expressed in the contract's smallest token/native unit.✨ AI
HASHI_IS_ENABLED() view

Returns whether the HASHI feature is currently enabled.✨ AI

Returns

Name Type Description
bool Boolean indicating if HASHI is enabled (true) or disabled (false).✨ AI
requiredSignatures() view

Returns the number of signatures required to authorize a bridge transfer.✨ AI

Returns

Name Type Description
uint256 uint256 representing the required number of validator signatures (threshold) to approve a transfer.✨ AI
owner() view

Returns the address that currently owns and administrates the contract.✨ AI

dev: Tells the address of the owner

Returns

Name Type Description
address the address of the owner
isApprovedByHashi(hashMsg: bytes32) view

Checks whether the provided message hash has been approved by the Hashi signer.✨ AI

Parameters

Name Type Description
hashMsg bytes32 Message hash to check for prior approval by Hashi.✨ AI

Returns

Name Type Description
bool True if the given hash is marked as approved by Hashi; false otherwise.✨ AI
messagesSigned(_message: bytes32) view

Checks if the bridge has recorded the given message hash as signed.✨ AI

Parameters

Name Type Description
_message bytes32 Message hash to check for a recorded signature.✨ AI

Returns

Name Type Description
bool true if the provided message hash is recorded as signed; false otherwise.✨ AI
getAmountToBurn(_value: uint256) view

Calculate the token amount that must be burned when bridging the given ERC token value to native.✨ AI

Parameters

Name Type Description
_value uint256 ERC token amount provided for bridging to native, expressed in token smallest units.✨ AI

Returns

Name Type Description
amount uint256 Calculated amount of ERC tokens that will be burned from the provided value, in token smallest units.✨ AI
getHomeFee() view

Returns the current fee charged by the home bridge for processing transfers.✨ AI

Returns

Name Type Description
uint256 The current home bridge fee in wei as a uint256.✨ AI
maxAvailablePerTx() view

Returns the maximum amount allowed to bridge in a single transaction.✨ AI

dev: Retrieves maximum available bridge amount per one transaction taking into account maxPerTx() and dailyLimit() parameters.

Returns

Name Type Description
uint256 minimum of maxPerTx parameter and remaining daily quota.
validatorContract() view

Returns the address of the current validator contract used by the bridge.✨ AI

Returns

Name Type Description
address The validator contract address that the bridge uses to verify signatures and validations.✨ AI
deployedAtBlock() view

Returns the block number at which this contract was deployed.✨ AI

Returns

Name Type Description
uint256 Deployment block number (uint256).✨ AI
getBridgeInterfacesVersion() pure

Returns the bridge interfaces semantic version as major, minor, and patch numbers.✨ AI

Returns

Name Type Description
major uint64 major: uint64 - Major version number indicating incompatible API changes.✨ AI
minor uint64 minor: uint64 - Minor version number for backward-compatible feature additions.✨ AI
patch uint64 patch: uint64 - Patch version number for backward-compatible bug fixes.✨ AI
outOfLimitAmount() view
dev: Total amount coins/tokens that were bridged from the other side and are out of execution limits.

Returns

Name Type Description
uint256 total amount of all bridge operations above limits.
nonce() view

Returns

Name Type Description
uint256
usdsDepositContract() view

Returns

Name Type Description
address
decimalShift() view
dev: Returns the value of foreign-to-home decimal shift.

Returns

Name Type Description
int256 decimal shift.
feeManagerContract() view
dev: Retrieves the address of the fee manager contract used.

Returns

Name Type Description
address address of the fee manager contract.
minPerTx() view

Returns

Name Type Description
uint256
withinLimit(_amount: uint256) view

Parameters

Name Type Description
_amount uint256

Returns

Name Type Description
bool
getFeeManagerMode() view
dev: Retrieves the mode of the used fee manager.

Returns

Name Type Description
mode bytes4 manager mode identifier, or zero bytes otherwise.
maxPerTx() view

Returns

Name Type Description
uint256
gasPrice() view

Returns

Name Type Description
uint256
isAlreadyProcessed(_number: uint256) pure

Parameters

Name Type Description
_number uint256

Returns

Name Type Description
bool
getForeignFee() view

Returns

Name Type Description
uint256

Write Functions

setBlockRewardContract(_blockReward: address) nonpayable

Parameters

Name Type Description
_blockReward address
setForeignFee(_fee: uint256) nonpayable
dev: Updates the fee percentage for foreign->home bridge operations. Only owner is allowed to call this method.

Parameters

Name Type Description
_fee uint256 new value for fee percentage.
setHomeFee(_fee: uint256) nonpayable
dev: Updates the fee percentage for home->foreign bridge operations. Only owner is allowed to call this method. If during this operation, home fee is changed, it is highly recommended to stop the bridge operations first. Otherwise, pending signature requests can become a reason for imbalance between two bridge sides.

Parameters

Name Type Description
_fee uint256 new value for fee percentage.
setExecutionDailyLimit(_dailyLimit: uint256) nonpayable

Parameters

Name Type Description
_dailyLimit uint256
relayTokens(_receiver: address) payable

Parameters

Name Type Description
_receiver address
setUSDSDepositContract(_contract: address) nonpayable

Parameters

Name Type Description
_contract address
setFeeManagerContract(_feeManager: address) nonpayable
dev: Updates the address of the used fee manager contract. Only contract owner can call this method. If during this operation, home fee is changed, it is highly recommended to stop the bridge operations first. Otherwise, pending signature requests can become a reason for imbalance between two bridge sides.

Parameters

Name Type Description
_feeManager address address of the new fee manager contract, or zero address to disable fee collection.
submitSignature(signature: bytes, message: bytes) nonpayable

Parameters

Name Type Description
signature bytes
message bytes
claimTokens(_token: address, _to: address) nonpayable
dev: Withdraws the erc20 tokens or native coins from this contract.

Parameters

Name Type Description
_token address address of the claimed token or address(0) for native coins.
_to address address of the tokens/coins receiver.
resendDataWithHashi(data: bytes) nonpayable

Parameters

Name Type Description
data bytes
initialize(_validatorContract: address, _dailyLimitMaxPerTxMinPerTxArray: uint256[3], _homeGasPrice: uint256, _requiredBlockConfirmations: uint256, _blockReward: address, _foreignDailyLimitForeignMaxPerTxArray: uint256[2], _owner: address, _decimalShift: int256) nonpayable

Parameters

Name Type Description
_validatorContract address
_dailyLimitMaxPerTxMinPerTxArray uint256[3]
_homeGasPrice uint256
_requiredBlockConfirmations uint256
_blockReward address
_foreignDailyLimitForeignMaxPerTxArray uint256[2]
_owner address
_decimalShift int256

Returns

Name Type Description
bool
executeAffirmation(recipient: address, value: uint256, nonce: bytes32) nonpayable
dev: Executes a message affirmation for some Foreign side event. Can be called only by a current bridge validator.

Parameters

Name Type Description
recipient address tokens/coins of receiver address, where the assets should be unlocked/minted.
value uint256 amount of assets to unlock/mint.
nonce bytes32 reference nonce on the Foreign side of the bridge.
setMinPerTx(_minPerTx: uint256) nonpayable

Parameters

Name Type Description
_minPerTx uint256
setRequiredBlockConfirmations(_blockConfirmations: uint256) nonpayable

Parameters

Name Type Description
_blockConfirmations uint256
setDailyLimit(_dailyLimit: uint256) nonpayable

Parameters

Name Type Description
_dailyLimit uint256
setHashiManager(_hashiManager: address) nonpayable

Parameters

Name Type Description
_hashiManager address
setGasPrice(_gasPrice: uint256) nonpayable
dev: Public setter for fallback gas price value. Only bridge owner can call this method.

Parameters

Name Type Description
_gasPrice uint256 new value for the gas price.
setMaxPerTx(_maxPerTx: uint256) nonpayable

Parameters

Name Type Description
_maxPerTx uint256
onMessage(uint256, chainId: uint256, sender: address, threshold: uint256, adapters: address[], data: bytes) nonpayable

Parameters

Name Type Description
uint256
chainId uint256
sender address
threshold uint256
adapters address[]
data bytes

Returns

Name Type Description
bytes
rewardableInitialize(_validatorContract: address, _dailyLimitMaxPerTxMinPerTxArray: uint256[3], _homeGasPrice: uint256, _requiredBlockConfirmations: uint256, _blockReward: address, _foreignDailyLimitForeignMaxPerTxArray: uint256[2], _owner: address, _feeManager: address, _homeFeeForeignFeeArray: uint256[2], _decimalShift: int256) nonpayable

Parameters

Name Type Description
_validatorContract address
_dailyLimitMaxPerTxMinPerTxArray uint256[3]
_homeGasPrice uint256
_requiredBlockConfirmations uint256
_blockReward address
_foreignDailyLimitForeignMaxPerTxArray uint256[2]
_owner address
_feeManager address
_homeFeeForeignFeeArray uint256[2]
_decimalShift int256

Returns

Name Type Description
bool
fixAssetsAboveLimits(hashMsg: bytes32, unlockOnForeign: bool, valueToUnlock: uint256, tokenAddress: address) nonpayable
dev: Fixes locked tokens, that were out of execution limits during the call to executeAffirmation.

Parameters

Name Type Description
hashMsg bytes32 reference for bridge operation that was out of execution limits.
unlockOnForeign bool true if fixed tokens should be unlocked to the other side of the bridge.
valueToUnlock uint256 unlocked amount of tokens, should be less than txAboveLimitsValue.
tokenAddress address token address to receive on Ethereum Should be less than maxPerTx(), if tokens need to be unlocked on the other side.
setExecutionMaxPerTx(_maxPerTx: uint256) nonpayable

Parameters

Name Type Description
_maxPerTx uint256
transferOwnership(newOwner: address) nonpayable
dev: Allows the current owner to transfer control of the contract to a newOwner.

Parameters

Name Type Description
newOwner address the address to transfer ownership to.

Events

UserRequestForSignature(recipient: address, value: uint256, nonce: bytes32, token: address)
Name Type Indexed Description
recipient address
value uint256
nonce bytes32
token address
AffirmationCompleted(recipient: address, value: uint256, nonce: bytes32)
Name Type Indexed Description
recipient address
value uint256
nonce bytes32
SignedForUserRequest(signer: address, messageHash: bytes32)
Name Type Indexed Description
signer address
messageHash bytes32
SignedForAffirmation(signer: address, nonce: bytes32)
Name Type Indexed Description
signer address
nonce bytes32
CollectedSignatures(authorityResponsibleForRelay: address, messageHash: bytes32, NumberOfCollectedSignatures: uint256)
Name Type Indexed Description
authorityResponsibleForRelay address
messageHash bytes32
NumberOfCollectedSignatures uint256
DailyLimitChanged(newLimit: uint256)
Name Type Indexed Description
newLimit uint256
ExecutionDailyLimitChanged(newLimit: uint256)
Name Type Indexed Description
newLimit uint256
GasPriceChanged(gasPrice: uint256)
Name Type Indexed Description
gasPrice uint256
RequiredBlockConfirmationChanged(requiredBlockConfirmations: uint256)
Name Type Indexed Description
requiredBlockConfirmations uint256
FeeDistributedFromAffirmation(feeAmount: uint256, transactionHash: bytes32)
Name Type Indexed Description
feeAmount uint256
transactionHash bytes32
FeeDistributedFromSignatures(feeAmount: uint256, transactionHash: bytes32)
Name Type Indexed Description
feeAmount uint256
transactionHash bytes32
OwnershipTransferred(previousOwner: address, newOwner: address)
Name Type Indexed Description
previousOwner address representing the address of the previous owner
newOwner address representing the address of the new owner
MediatorAmountLimitExceeded(recipient: address, value: uint256, messageId: bytes32)
Name Type Indexed Description
recipient address
value uint256
messageId bytes32
AmountLimitExceeded(recipient: address, value: uint256, transactionHash: bytes32, messageId: bytes32)
Name Type Indexed Description
recipient address
value uint256
transactionHash bytes32
messageId bytes32
AssetAboveLimitsFixed(messageId: bytes32, value: uint256, remaining: uint256)
Name Type Indexed Description
messageId bytes32
value uint256
remaining uint256