> ## Documentation Index
> Fetch the complete documentation index at: https://docs.therootnetwork.com/llms.txt
> Use this file to discover all available pages before exploring further.

# EthBridge

## Calls

## depositRelayerBond

**Namespace**

```
api.tx.ethBridge.depositRelayerBond
```

**Type**

```
function depositRelayerBond(

)
```

## finaliseAuthoritiesChange

**Namespace**

```
api.tx.ethBridge.finaliseAuthoritiesChange
```

**Type**

```
function finaliseAuthoritiesChange(
  next_notary_keys: Vec<SeedPrimitivesEthyCryptoAppCryptoPublic>
)
```

## setBridgePaused

**Namespace**

```
api.tx.ethBridge.setBridgePaused
```

**Type**

```
function setBridgePaused(
  paused: bool
)
```

## setChallengePeriod

**Namespace**

```
api.tx.ethBridge.setChallengePeriod
```

**Type**

```
function setChallengePeriod(
  blocks: u32
)
```

## setContractAddress

**Namespace**

```
api.tx.ethBridge.setContractAddress
```

**Type**

```
function setContractAddress(
  contract_address: H160
)
```

## setDelayedEventProofsPerBlock

**Namespace**

```
api.tx.ethBridge.setDelayedEventProofsPerBlock
```

**Type**

```
function setDelayedEventProofsPerBlock(
  count: u8
)
```

## setEventBlockConfirmations

**Namespace**

```
api.tx.ethBridge.setEventBlockConfirmations
```

**Type**

```
function setEventBlockConfirmations(
  confirmations: u64
)
```

## setRelayer

**Namespace**

```
api.tx.ethBridge.setRelayer
```

**Type**

```
function setRelayer(
  relayer: SeedPrimitivesSignatureAccountId20
)
```

## setXrplDoorSigners

**Namespace**

```
api.tx.ethBridge.setXrplDoorSigners
```

**Type**

```
function setXrplDoorSigners(
  new_signers: Vec<(SeedPrimitivesEthyCryptoAppCryptoPublic,bool)>
)
```

## submitChallenge

**Namespace**

```
api.tx.ethBridge.submitChallenge
```

**Type**

```
function submitChallenge(
  event_claim_id: u64
)
```

## submitEvent

**Namespace**

```
api.tx.ethBridge.submitEvent
```

**Type**

```
function submitEvent(
  tx_hash: H256,
  event: Bytes
)
```

## submitNotarization

**Namespace**

```
api.tx.ethBridge.submitNotarization
```

**Type**

```
function submitNotarization(
  payload: PalletEthyNotarizationPayload,
  _signature: SeedPrimitivesEthyCryptoAppCryptoSignature
)
```

## withdrawRelayerBond

**Namespace**

```
api.tx.ethBridge.withdrawRelayerBond
```

**Type**

```
function withdrawRelayerBond(

)
```

## Storage

## authoritiesChangedThisEra

Flag to indicate whether authorities have been changed during the current era

**Namespace**

```
api.query.ethBridge.authoritiesChangedThisEra
```

**Type**

```
function authoritiesChangedThisEra(

): bool
```

## bridgePaused

Whether the bridge is paused (e.g. during validator transitions or by governance)

**Namespace**

```
api.query.ethBridge.bridgePaused
```

**Type**

```
function bridgePaused(

): bool
```

## challengePeriod

The (optimistic) challenge period after which a submitted event is considered valid

**Namespace**

```
api.query.ethBridge.challengePeriod
```

**Type**

```
function challengePeriod(

): u32
```

## challengerAccount

Maps from event claim id to challenger and bond amount paid

**Namespace**

```
api.query.ethBridge.challengerAccount
```

**Type**

```
function challengerAccount(
  u64
): Option<(SeedPrimitivesSignatureAccountId20,u128)>
```

## contractAddress

The bridge contract address on Ethereum

**Namespace**

```
api.query.ethBridge.contractAddress
```

**Type**

```
function contractAddress(

): H160
```

## delayedEventProofsPerBlock

The maximum number of delayed events that can be processed in on\_initialize()

**Namespace**

```
api.query.ethBridge.delayedEventProofsPerBlock
```

**Type**

```
function delayedEventProofsPerBlock(

): u8
```

## ethCallNotarizations

EthCallOracle notarizations keyed by (Id, Notary)

**Namespace**

```
api.query.ethBridge.ethCallNotarizations
```

**Type**

```
function ethCallNotarizations(
  u64,
  SeedPrimitivesEthyCryptoAppCryptoPublic
): Option<PalletEthyCheckedEthCallResult>
```

## ethCallNotarizationsAggregated

map from EthCallOracle notarizations to an aggregated count

**Namespace**

```
api.query.ethBridge.ethCallNotarizationsAggregated
```

**Type**

```
function ethCallNotarizationsAggregated(
  u64
): Option<BTreeMap<PalletEthyCheckedEthCallResult, u32>>
```

## ethCallRequestInfo

EthCallOracle request info

**Namespace**

```
api.query.ethBridge.ethCallRequestInfo
```

**Type**

```
function ethCallRequestInfo(
  u64
): Option<PalletEthyCheckedEthCallRequest>
```

## ethCallRequests

Queue of pending EthCallOracle requests

**Namespace**

```
api.query.ethBridge.ethCallRequests
```

**Type**

```
function ethCallRequests(

): Vec<u64>
```

## eventBlockConfirmations

The minimum number of block confirmations needed to notarize an Ethereum event

**Namespace**

```
api.query.ethBridge.eventBlockConfirmations
```

**Type**

```
function eventBlockConfirmations(

): u64
```

## eventNotarizations

Notarizations for queued events Either: None = no notarization exists OR Some(yay/nay)

**Namespace**

```
api.query.ethBridge.eventNotarizations
```

**Type**

```
function eventNotarizations(
  u64,
  SeedPrimitivesEthyCryptoAppCryptoPublic
): Option<PalletEthyEventClaimResult>
```

## messagesValidAt

Map from block number to list of EventClaims that will be considered valid and should be forwarded to handlers (i.e after the optimistic challenge period has passed without issue)

**Namespace**

```
api.query.ethBridge.messagesValidAt
```

**Type**

```
function messagesValidAt(
  u32
): Vec<u64>
```

## nextAuthorityChange

The block in which we process the next authority change

**Namespace**

```
api.query.ethBridge.nextAuthorityChange
```

**Type**

```
function nextAuthorityChange(

): Option<u32>
```

## nextEthCallId

Subscription Id for EthCall requests

**Namespace**

```
api.query.ethBridge.nextEthCallId
```

**Type**

```
function nextEthCallId(

): u64
```

## nextEventProofId

Id of the next event proof

**Namespace**

```
api.query.ethBridge.nextEventProofId
```

**Type**

```
function nextEventProofId(

): u64
```

## nextNotaryKeys

Scheduled notary (validator) public keys for the next session

**Namespace**

```
api.query.ethBridge.nextNotaryKeys
```

**Type**

```
function nextNotaryKeys(

): Vec<SeedPrimitivesEthyCryptoAppCryptoPublic>
```

## notaryKeys

Active notary (validator) public keys

**Namespace**

```
api.query.ethBridge.notaryKeys
```

**Type**

```
function notaryKeys(

): Vec<SeedPrimitivesEthyCryptoAppCryptoPublic>
```

## notarySetId

The current validator set id

**Namespace**

```
api.query.ethBridge.notarySetId
```

**Type**

```
function notarySetId(

): u64
```

## notarySetProofId

The event proof Id generated by the previous validator set to notarize the current set. Useful for syncing the latest proof to Ethereum

**Namespace**

```
api.query.ethBridge.notarySetProofId
```

**Type**

```
function notarySetProofId(

): u64
```

## notaryXrplKeys

Active xrpl notary (validator) public keys

**Namespace**

```
api.query.ethBridge.notaryXrplKeys
```

**Type**

```
function notaryXrplKeys(

): Vec<SeedPrimitivesEthyCryptoAppCryptoPublic>
```

## pendingClaimChallenges

List of all event ids that are currently being challenged

**Namespace**

```
api.query.ethBridge.pendingClaimChallenges
```

**Type**

```
function pendingClaimChallenges(

): Vec<u64>
```

## pendingClaimStatus

Status of pending event claims

**Namespace**

```
api.query.ethBridge.pendingClaimStatus
```

**Type**

```
function pendingClaimStatus(
  u64
): Option<PalletEthyEventClaimStatus>
```

## pendingEventClaims

Queued event claims, can be challenged within challenge period

**Namespace**

```
api.query.ethBridge.pendingEventClaims
```

**Type**

```
function pendingEventClaims(
  u64
): Option<PalletEthyEventClaim>
```

## pendingEventProofs

Queued event proofs to be processed once bridge has been re-enabled

**Namespace**

```
api.query.ethBridge.pendingEventProofs
```

**Type**

```
function pendingEventProofs(
  u64
): Option<PalletEthyEthySigningRequest>
```

## processedMessageIds

Tracks processed message Ids (prevent replay)

**Namespace**

```
api.query.ethBridge.processedMessageIds
```

**Type**

```
function processedMessageIds(

): Vec<u64>
```

## relayer

The permissioned relayer

**Namespace**

```
api.query.ethBridge.relayer
```

**Type**

```
function relayer(

): Option<SeedPrimitivesSignatureAccountId20>
```

## relayerPaidBond

Maps from relayer account to their paid bond amount

**Namespace**

```
api.query.ethBridge.relayerPaidBond
```

**Type**

```
function relayerPaidBond(
  SeedPrimitivesSignatureAccountId20
): u128
```

## xrplDoorSigners

Door Signers set by sudo (white list)

**Namespace**

```
api.query.ethBridge.xrplDoorSigners
```

**Type**

```
function xrplDoorSigners(
  SeedPrimitivesEthyCryptoAppCryptoPublic
): bool
```

## xrplNotarySetProofId

The event proof Id generated by the previous validator set to notarize the current set. Useful for syncing the latest proof to Xrpl

**Namespace**

```
api.query.ethBridge.xrplNotarySetProofId
```

**Type**

```
function xrplNotarySetProofId(

): u64
```

## Events

## AuthoritySetChange

A notary (validator) set change is in motion (event\_id, new\_validator\_set\_id) A proof for the change will be generated with the given `event_id`

**Namespace**

```
api.events.ethBridge.AuthoritySetChange
```

**Type**

```
type AuthoritySetChange = {
  param0: u64,
  param1: u64
}
```

## Challenged

An event has been challenged (claim\_id, challenger)

**Namespace**

```
api.events.ethBridge.Challenged
```

**Type**

```
type Challenged = {
  param0: u64,
  param1: SeedPrimitivesSignatureAccountId20
}
```

## EventSend

An event proof has been sent for signing by ethy-gadget

**Namespace**

```
api.events.ethBridge.EventSend
```

**Type**

```
type EventSend = {
  event_proof_id: u64,
  signing_request: PalletEthyEthySigningRequest
}
```

## EventSubmit

An event has been submitted from Ethereum (event\_claim\_id, event\_claim, process\_at)

**Namespace**

```
api.events.ethBridge.EventSubmit
```

**Type**

```
type EventSubmit = {
  param0: u64,
  param1: PalletEthyEventClaim,
  param2: u32
}
```

## FinaliseScheduleFail

The schedule to unpause the bridge has failed (scheduled\_block)

**Namespace**

```
api.events.ethBridge.FinaliseScheduleFail
```

**Type**

```
type FinaliseScheduleFail = {
  param0: u32
}
```

## Invalid

Verifying an event failed

**Namespace**

```
api.events.ethBridge.Invalid
```

**Type**

```
type Invalid = {
  param0: u64
}
```

## ProcessAtExtended

The event is still awaiting consensus. Process block pushed out (claim\_id, process\_at)

**Namespace**

```
api.events.ethBridge.ProcessAtExtended
```

**Type**

```
type ProcessAtExtended = {
  param0: u64,
  param1: u32
}
```

## ProcessingFailed

Processing an event failed

**Namespace**

```
api.events.ethBridge.ProcessingFailed
```

**Type**

```
type ProcessingFailed = {
  param0: u64,
  param1: SeedPalletCommonEventRouterError
}
```

## ProcessingOk

Processing an event succeeded

**Namespace**

```
api.events.ethBridge.ProcessingOk
```

**Type**

```
type ProcessingOk = {
  param0: u64
}
```

## ProofDelayed

Generating event proof delayed as bridge is paused

**Namespace**

```
api.events.ethBridge.ProofDelayed
```

**Type**

```
type ProofDelayed = {
  param0: u64
}
```

## RelayerBondDeposit

An account has deposited a relayer bond

**Namespace**

```
api.events.ethBridge.RelayerBondDeposit
```

**Type**

```
type RelayerBondDeposit = {
  param0: SeedPrimitivesSignatureAccountId20,
  param1: u128
}
```

## RelayerBondWithdraw

An account has withdrawn a relayer bond

**Namespace**

```
api.events.ethBridge.RelayerBondWithdraw
```

**Type**

```
type RelayerBondWithdraw = {
  param0: SeedPrimitivesSignatureAccountId20,
  param1: u128
}
```

## RelayerSet

A new relayer has been set

**Namespace**

```
api.events.ethBridge.RelayerSet
```

**Type**

```
type RelayerSet = {
  param0: Option<SeedPrimitivesSignatureAccountId20>
}
```

## SetContractAddress

The bridge contract address has been set

**Namespace**

```
api.events.ethBridge.SetContractAddress
```

**Type**

```
type SetContractAddress = {
  param0: H160
}
```

## Verified

Verifying an event succeeded

**Namespace**

```
api.events.ethBridge.Verified
```

**Type**

```
type Verified = {
  param0: u64
}
```

## XrplAuthoritySetChange

A notary (validator) set change for Xrpl is in motion (event\_id, new\_validator\_set\_id) A proof for the change will be generated with the given `event_id`

**Namespace**

```
api.events.ethBridge.XrplAuthoritySetChange
```

**Type**

```
type XrplAuthoritySetChange = {
  param0: u64,
  param1: u64
}
```

## XrplAuthoritySetChangeRequestFailed

Xrpl authority set change request failed

**Namespace**

```
api.events.ethBridge.XrplAuthoritySetChangeRequestFailed
```

**Type**

```
type XrplAuthoritySetChangeRequestFailed = {

}
```

## XrplDoorSignersSet

Xrpl Door signers are set

**Namespace**

```
api.events.ethBridge.XrplDoorSignersSet
```

**Type**

```
type XrplDoorSignersSet = {

}
```

## Errors

## BridgePaused

The bridge is paused pending validator set changes (once every era / 24 hours) It will reactive after \~10 minutes

**Namespace**

```
api.errors.ethBridge.BridgePaused
```

## CantBondRelayer

The relayer already has a bonded amount

**Namespace**

```
api.errors.ethBridge.CantBondRelayer
```

## CantUnbondRelayer

The relayer is active and cant unbond the specified amount

**Namespace**

```
api.errors.ethBridge.CantUnbondRelayer
```

## ClaimAlreadyChallenged

There is already a challenge for this claim

**Namespace**

```
api.errors.ethBridge.ClaimAlreadyChallenged
```

## EventReplayPending

Event was already submitted and is pending

**Namespace**

```
api.errors.ethBridge.EventReplayPending
```

## EventReplayProcessed

Event was already submitted and is complete

**Namespace**

```
api.errors.ethBridge.EventReplayProcessed
```

## HttpFetch

**Namespace**

```
api.errors.ethBridge.HttpFetch
```

## Internal

Some internal operation failed

**Namespace**

```
api.errors.ethBridge.Internal
```

## InvalidClaim

Claim was invalid e.g. not properly ABI encoded

**Namespace**

```
api.errors.ethBridge.InvalidClaim
```

## InvalidNotarization

A notarization was invalid

**Namespace**

```
api.errors.ethBridge.InvalidNotarization
```

## MaxNewSignersExceeded

Someone tried to set a greater amount of validators than allowed

**Namespace**

```
api.errors.ethBridge.MaxNewSignersExceeded
```

## NoBondPaid

The relayer hasn't paid the relayer bond so can't be set as the active relayer

**Namespace**

```
api.errors.ethBridge.NoBondPaid
```

## NoClaim

There is no event claim associated with the supplied claim\_id

**Namespace**

```
api.errors.ethBridge.NoClaim
```

## NoLocalSigningAccount

**Namespace**

```
api.errors.ethBridge.NoLocalSigningAccount
```

## NoPermission

Caller does not have permission for that action

**Namespace**

```
api.errors.ethBridge.NoPermission
```

## OcwConfig

offchain worker not configured properly

**Namespace**

```
api.errors.ethBridge.OcwConfig
```

## OffchainUnsignedTxSignedPayload

**Namespace**

```
api.errors.ethBridge.OffchainUnsignedTxSignedPayload
```

undefined
