# EVMBtcStoredHeader

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:25](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L25)

Represents a bitcoin header already committed inside EVM BTC relay contract state.

## Implements

* [`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md)<[`EVMBtcHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcHeader.md)>

## Methods

### computeNext()

```
computeNext(header): EVMBtcStoredHeader;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:133](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L133)

Computes and returns a new stored blockheader after adding a new blockheader on top of it

#### Parameters

| Parameter | Type                                                                                                          | Description                                |
| --------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| `header`  | [`EVMBtcHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcHeader.md) | The new blockheader to append to the chain |

#### Returns

`EVMBtcStoredHeader`

#### Implementation of

[`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md).[`computeNext`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md#computenext)

***

### deserialize()

```
static deserialize(data): EVMBtcStoredHeader;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:184](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L184)

Deserializes a stored blockheader from the 160-byte binary representation.

#### Parameters

| Parameter | Type     | Description                         |
| --------- | -------- | ----------------------------------- |
| `data`    | `Buffer` | Serialized stored blockheader bytes |

#### Returns

`EVMBtcStoredHeader`

***

### getBlockHash()

```
getBlockHash(): Buffer;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:84](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L84)

#### Returns

`Buffer`

#### Inherit Doc

***

### getBlockheight()

```
getBlockheight(): number;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:49](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L49)

Blockheight of the current block

#### Returns

`number`

#### Implementation of

[`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md).[`getBlockheight`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md#getblockheight)

***

### getChainWork()

```
getChainWork(): Buffer;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:56](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L56)

Total accumulated chainwork at this block

#### Returns

`Buffer`

#### Implementation of

[`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md).[`getChainWork`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md#getchainwork)

***

### getCommitHash()

```
getCommitHash(): string;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:148](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L148)

Returns the commitment of this stored head (keccak256 hash), this is what's actually stored on-chain

#### Returns

`string`

***

### getHeader()

```
getHeader(): EVMBtcHeader;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:63](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L63)

The actual blockheader that was saved

#### Returns

[`EVMBtcHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcHeader.md)

#### Implementation of

[`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md).[`getHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md#getheader)

***

### getLastDiffAdjustment()

```
getLastDiffAdjustment(): number;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:70](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L70)

UNIX seconds timestamp of the last difficulty adjustment

#### Returns

`number`

#### Implementation of

[`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md).[`getLastDiffAdjustment`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md#getlastdiffadjustment)

***

### getPrevBlockTimestamps()

```
getPrevBlockTimestamps(): number[];
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:77](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L77)

UNIX seconds timestamps of the last 11 blocks, used for checking the median block time rule

#### Returns

`number`\[]

#### Implementation of

[`BtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md).[`getPrevBlockTimestamps`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcStoredHeader.md#getprevblocktimestamps)

***

### serialize()

```
serialize(): Buffer;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:155](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L155)

Serializes the stored blockheader into the 160-byte binary layout used by the EVM contracts.

#### Returns

`Buffer`

***

### serializeToStruct()

```
serializeToStruct(): object;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:170](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L170)

Serializes the stored blockheader into the contract tuple form (`bytes32[5]` payload).

#### Returns

`object`

| Name   | Type                                                | Defined in                                                                                                                                                                                                              |
| ------ | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data` | \[`string`, `string`, `string`, `string`, `string`] | [atomiq-chain-evm/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts:170](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts#L170) |
