> ## 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.

# Echo

## Calls

### ping

Ping extrinsic sends an event to the bridge containing a message

**Namespace**

```
api.tx.echo.ping
```

**Type**

```
function ping(
  destination: H160
)
```

## Storage

### nextSessionId

The next available offer\_id

**Namespace**

```
api.query.echo.nextSessionId
```

**Type**

```
function nextSessionId(

): u64
```

## Events

### PingReceived

A ping was received from Ethereum

**Namespace**

```
api.events.echo.PingReceived
```

**Type**

```
type PingReceived = {
  session_id: u64,
  source: H160,
  data: Bytes
}
```

### PingSent

A ping message was sent to Ethereum

**Namespace**

```
api.events.echo.PingSent
```

**Type**

```
type PingSent = {
  session_id: u64,
  source: H160,
  destination: H160,
  event_proof_id: u64
}
```

### PongReceived

A pong response was received from Ethereum

**Namespace**

```
api.events.echo.PongReceived
```

**Type**

```
type PongReceived = {
  session_id: u64,
  source: H160,
  data: Bytes
}
```

### PongSent

A pong message was sent to Ethereum

**Namespace**

```
api.events.echo.PongSent
```

**Type**

```
type PongSent = {
  session_id: u64,
  source: H160,
  destination: H160,
  event_proof_id: u64
}
```

## Errors

### InvalidAbiEncoding

The abi received does not match the encoding scheme

**Namespace**

```
api.errors.echo.InvalidAbiEncoding
```

### InvalidParameter

Invalid ping\_or\_pong parameter, must be 0 or 1

**Namespace**

```
api.errors.echo.InvalidParameter
```

### NoAvailableIds

There are no remaining session ids

**Namespace**

```
api.errors.echo.NoAvailableIds
```

## Constants

### palletId

This pallet's Id, used for deriving a sovereign account ID

**Namespace**

```
api.consts.echo.palletId
```

**Type**

```
type palletId = FrameSupportPalletId
```
