# SolanaBtcRelay\<B>

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:40](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L40)

Solana BTC relay (bitcoin light client) program representation.

## Extends

* `SolanaProgramBase`<`any`>

## Type Parameters

| Type Parameter           |
| ------------------------ |
| `B` *extends* `BtcBlock` |

## Implements

* [`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md)<[`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md), { `signers`: `Signer`\[]; `tx`: `Transaction`; }, `B`, [`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.md)>

## Constructors

### Constructor

```
new SolanaBtcRelay<B>(

   chainInterface, 

   bitcoinRpc, 

programAddress?): SolanaBtcRelay<B>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:176](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L176)

#### Parameters

| Parameter         | Type                                                                                                                             | Description                                                                     |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `chainInterface`  | [`SolanaChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaChainInterface.md) | Underlying chain interface to use for the Solana chain operations               |
| `bitcoinRpc`      | [`BitcoinRpc`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BitcoinRpc.md)<`B`>                      | Bitcoin RPC instance to use for read access to the bitcoin blockchain           |
| `programAddress?` | `string`                                                                                                                         | Optional Solana on-chain program address, defaults to the cannonical deployment |

#### Returns

`SolanaBtcRelay`<`B`>

#### Overrides

```
SolanaProgramBase<any>.constructor
```

## Properties

### maxForkHeadersPerTx

```
readonly maxForkHeadersPerTx: number = 4;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:165](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L165)

Maximum amount of fork headers that fit in a single transactions

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`maxForkHeadersPerTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#maxforkheaderspertx)

***

### maxHeadersPerTx

```
readonly maxHeadersPerTx: number = 5;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:161](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L161)

Maximum blockheaders that fit in a single transaction

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`maxHeadersPerTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#maxheaderspertx)

***

### maxShortForkHeadersPerTx

```
readonly maxShortForkHeadersPerTx: number = 4;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:169](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L169)

Maximum amount of fork headers that can be submitted at once using the short fork method

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`maxShortForkHeadersPerTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#maxshortforkheaderspertx)

***

### program

```
program: Program<T>;
```

Defined in: [atomiq-chain-solana/src/solana/program/SolanaProgramBase.ts:21](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/program/SolanaProgramBase.ts#L21)

#### Inherited from

[`SolanaSwapProgram`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSwapProgram.md).[`program`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSwapProgram.md#program)

## Methods

### estimateSynchronizeFee()

```
estimateSynchronizeFee(requiredBlockheight, feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:559](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L559)

Estimate required synchronization fee (worst case) to synchronize btc relay to the required blockheight

#### Parameters

| Parameter             | Type     | Description                                 |
| --------------------- | -------- | ------------------------------------------- |
| `requiredBlockheight` | `number` | Blockheight to which to synchronize         |
| `feeRate?`            | `string` | Optional fee rate to use for the estimation |

#### Returns

`Promise`<`bigint`>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`estimateSynchronizeFee`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#estimatesynchronizefee)

***

### getFeePerBlock()

```
getFeePerBlock(feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:578](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L578)

Returns required fee in native token to synchronize a single block to btc relay

#### Parameters

| Parameter  | Type     | Description                                 |
| ---------- | -------- | ------------------------------------------- |
| `feeRate?` | `string` | Optional fee rate to use for the estimation |

#### Returns

`Promise`<`bigint`>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`getFeePerBlock`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#getfeeperblock)

***

### getForkFeeRate()

```
getForkFeeRate(signer, forkId): Promise<string>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:598](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L598)

Gets fee rate required for submitting blockheaders to the specific fork

#### Parameters

| Parameter | Type     | Description                                  |
| --------- | -------- | -------------------------------------------- |
| `signer`  | `string` | A signer's address to use for the estimation |
| `forkId`  | `number` | A fork ID to use for estimation              |

#### Returns

`Promise`<`string`>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`getForkFeeRate`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#getforkfeerate)

***

### getMainFeeRate()

```
getMainFeeRate(signer): Promise<string>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:587](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L587)

Gets fee rate required for submitting blockheaders to the main chain

#### Parameters

| Parameter | Type     | Description                                  |
| --------- | -------- | -------------------------------------------- |
| `signer`  | `string` | A signer's address to use for the estimation |

#### Returns

`Promise`<`string`>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`getMainFeeRate`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#getmainfeerate)

***

### getTipData()

```
getTipData(): Promise<{

  blockhash: string;

  blockheight: number;

  chainWork: Buffer;

  commitHash: string;

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:267](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L267)

Returns data about current main chain tip stored in the btc relay

#### Returns

`Promise`<{ `blockhash`: `string`; `blockheight`: `number`; `chainWork`: `Buffer`; `commitHash`: `string`; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`getTipData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#gettipdata)

***

### retrieveLatestKnownBlockLog()

```
retrieveLatestKnownBlockLog(): Promise<{

  resultBitcoinHeader: B;

  resultStoredHeader: SolanaBtcStoredHeader;

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:338](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L338)

Retrieves latest known bitcoin blockheader stored in the BTC Relay and also known to the bitcoin RPC

#### Returns

`Promise`<{ `resultBitcoinHeader`: `B`; `resultStoredHeader`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md); }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`retrieveLatestKnownBlockLog`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#retrievelatestknownblocklog)

***

### retrieveLogAndBlockheight()

```
retrieveLogAndBlockheight(blockData, requiredBlockheight?): Promise<{

  header: SolanaBtcStoredHeader;

  height: number;

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:282](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L282)

Retrieves blockheader with a specific blockhash, returns null if `requiredBlockheight` is provided and btc relay contract is not synced up to the desired blockheight

#### Parameters

| Parameter              | Type                       | Description |
| ---------------------- | -------------------------- | ----------- |
| `blockData`            | { `blockhash`: `string`; } |             |
| `blockData.blockhash`  | `string`                   | -           |
| `requiredBlockheight?` | `number`                   |             |

#### Returns

`Promise`<{ `header`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md); `height`: `number`; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`retrieveLogAndBlockheight`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#retrievelogandblockheight)

***

### retrieveLogByCommitHash()

```
retrieveLogByCommitHash(commitmentHashStr, blockData): Promise<SolanaBtcStoredHeader>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:317](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L317)

Retrieves stored bitcoin blockheader data by blockheader's commit hash and provided blockhash from `blockData`

#### Parameters

| Parameter             | Type                       | Description |
| --------------------- | -------------------------- | ----------- |
| `commitmentHashStr`   | `string`                   |             |
| `blockData`           | { `blockhash`: `string`; } |             |
| `blockData.blockhash` | `string`                   | -           |

#### Returns

`Promise`<[`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md)>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`retrieveLogByCommitHash`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#retrievelogbycommithash)

***

### saveForkHeaders()

```
saveForkHeaders(

   signer, 

   forkHeaders, 

   storedHeader, 

   forkId, 

   tipWork, 

   feeRate?): Promise<{

  computedCommitedHeaders: SolanaBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: SolanaBtcStoredHeader;

  tx: {

     signers: any[];

     tx: any;

  };

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:451](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L451)

Returns a transaction that continues submitting blockheaders to an existing long fork

#### Parameters

| Parameter      | Type                                                                                                                               | Description                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                           | A signer's address for the transaction                                       |
| `forkHeaders`  | `BtcBlock`\[]                                                                                                                      | New fork bitcoin blockheaders to submit                                      |
| `storedHeader` | [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md) | Committed and stored bitcoin blockheader in the BTC relay from which to fork |
| `forkId`       | `number`                                                                                                                           | Fork ID to submit the blockheaders to                                        |
| `tipWork`      | `Buffer`                                                                                                                           | Chainwork of the current BTC Relay main chain tip                            |
| `feeRate?`     | `string`                                                                                                                           | Optional fee rate for the transaction                                        |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md); `tx`: { `signers`: `any`\[]; `tx`: `any`; }; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`saveForkHeaders`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#saveforkheaders)

***

### saveInitialHeader()

```
saveInitialHeader(

   signer, 

   header, 

   epochStart, 

   pastBlocksTimestamps, 

   feeRate?): Promise<{

  signers: Signer[];

  tx: Transaction;

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:374](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L374)

Initializes the underlying BTC Relay contract

#### Parameters

| Parameter              | Type        | Description                                                        |
| ---------------------- | ----------- | ------------------------------------------------------------------ |
| `signer`               | `string`    | A signer's address to use for the transaction                      |
| `header`               | `B`         | Main chain blockheader to use as a genesis                         |
| `epochStart`           | `number`    | Timestamp of the first block in this difficulty epoch              |
| `pastBlocksTimestamps` | `number`\[] | Timestamps of the last 11 blockheaders, for median block time rule |
| `feeRate?`             | `string`    | Optional fee rate for the transaction                              |

#### Returns

`Promise`<{ `signers`: `Signer`\[]; `tx`: `Transaction`; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`saveInitialHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#saveinitialheader)

***

### saveMainHeaders()

```
saveMainHeaders(

   signer, 

   mainHeaders, 

   storedHeader, 

   feeRate?): Promise<{

  computedCommitedHeaders: SolanaBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: SolanaBtcStoredHeader;

  tx: {

     signers: any[];

     tx: any;

  };

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:394](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L394)

Returns a transaction that submits bitcoin blockheaders as a bitcoin main chain to the btc relay

#### Parameters

| Parameter      | Type                                                                                                                               | Description                                                      |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                           | A signer's address for the transaction                           |
| `mainHeaders`  | `BtcBlock`\[]                                                                                                                      | New bitcoin blockheaders to submit                               |
| `storedHeader` | [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md) | Latest committed and stored bitcoin blockheader in the BTC relay |
| `feeRate?`     | `string`                                                                                                                           | Optional fee rate for the transaction                            |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md); `tx`: { `signers`: `any`\[]; `tx`: `any`; }; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`saveMainHeaders`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#savemainheaders)

***

### saveNewForkHeaders()

```
saveNewForkHeaders(

   signer, 

   forkHeaders, 

   storedHeader, 

   tipWork, 

   feeRate?): Promise<{

  computedCommitedHeaders: SolanaBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: SolanaBtcStoredHeader;

  tx: {

     signers: any[];

     tx: any;

  };

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:415](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L415)

Returns a transaction that submits a new long fork and submits the first headers to it

#### Parameters

| Parameter      | Type                                                                                                                               | Description                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                           | A signer's address for the transaction                                       |
| `forkHeaders`  | `BtcBlock`\[]                                                                                                                      | New fork bitcoin blockheaders to submit                                      |
| `storedHeader` | [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md) | Committed and stored bitcoin blockheader in the BTC relay from which to fork |
| `tipWork`      | `Buffer`                                                                                                                           | Chainwork of the current BTC Relay main chain tip                            |
| `feeRate?`     | `string`                                                                                                                           | Optional fee rate for the transaction                                        |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md); `tx`: { `signers`: `any`\[]; `tx`: `any`; }; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`saveNewForkHeaders`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#savenewforkheaders)

***

### saveShortForkHeaders()

```
saveShortForkHeaders(

   signer, 

   forkHeaders, 

   storedHeader, 

   tipWork, 

   feeRate?): Promise<{

  computedCommitedHeaders: SolanaBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: SolanaBtcStoredHeader;

  tx: {

     signers: any[];

     tx: any;

  };

}>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:486](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L486)

Returns a transaction that submits a short fork with the provided blockheaders

#### Parameters

| Parameter      | Type                                                                                                                               | Description                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                           | A signer's address for the transaction                                       |
| `forkHeaders`  | `BtcBlock`\[]                                                                                                                      | New fork bitcoin blockheaders to submit                                      |
| `storedHeader` | [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md) | Committed and stored bitcoin blockheader in the BTC relay from which to fork |
| `tipWork`      | `Buffer`                                                                                                                           | Chainwork of the current BTC Relay main chain tip                            |
| `feeRate?`     | `string`                                                                                                                           | Optional fee rate for the transaction                                        |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md); `tx`: { `signers`: `any`\[]; `tx`: `any`; }; }>

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`saveShortForkHeaders`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#saveshortforkheaders)

***

### sweepForkData()

```
sweepForkData(signer, lastSweepId?): Promise<number>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:517](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L517)

Checks and sweeps data accounts which contain yet unused fork data (use for Solana's PDAs)

#### Parameters

| Parameter      | Type                                                                                                             | Description                             |
| -------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| `signer`       | [`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.md) | A signer's address to check account for |
| `lastSweepId?` | `number`                                                                                                         | Timestamp of the last sweep             |

#### Returns

`Promise`<`number`>

A number of data accounts swept

#### Implementation of

[`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md).[`sweepForkData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md#sweepforkdata)

***

### Verify()

```
Verify(

   signer, 

   reversedTxId, 

   confirmations, 

   position, 

   reversedMerkleProof, 

committedHeader): Promise<SolanaAction>;
```

Defined in: [atomiq-chain-solana/src/solana/btcrelay/SolanaBtcRelay.ts:85](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/btcrelay/SolanaBtcRelay.ts#L85)

Creates verify action to be used with the swap program, specifies the action to be firstIxBeforeComputeBudget, such that the verify instruction will always be the 0th in the transaction, this is required because swap program expects the verify instruction to be at the 0th position

#### Parameters

| Parameter             | Type                                                                                                                               | Description |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `signer`              | `PublicKey`                                                                                                                        |             |
| `reversedTxId`        | `Buffer`                                                                                                                           |             |
| `confirmations`       | `number`                                                                                                                           |             |
| `position`            | `number`                                                                                                                           |             |
| `reversedMerkleProof` | `Buffer`<`ArrayBufferLike`>\[]                                                                                                     |             |
| `committedHeader`     | [`SolanaBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaBtcStoredHeader.md) |             |

#### Returns

`Promise`<`SolanaAction`>
