StarknetBtcRelay<B>
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:62
Starknet BTC Relay bitcoin light client contract representation
Extends
StarknetContractBase<typeofBtcRelayAbi>
Type Parameters
| Type Parameter |
|---|
B extends BtcBlock |
Implements
Constructors
Constructor
new StarknetBtcRelay<B>(
chainInterface,
bitcoinRpc,
bitcoinNetwork,
contractAddress,
contractDeploymentHeight?): StarknetBtcRelay<B>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:138
Parameters
| Parameter | Type |
|---|---|
chainInterface | StarknetChainInterface |
bitcoinRpc | BitcoinRpc<B> |
bitcoinNetwork | BitcoinNetwork |
contractAddress | string |
contractDeploymentHeight? | number |
Returns
StarknetBtcRelay<B>
Overrides
StarknetContractBase<typeof BtcRelayAbi>.constructor
Properties
contract
readonly contract: TypedContractV2<T>;
Defined in: atomiq-chain-starknet/src/starknet/contract/StarknetContractBase.ts:11
Inherited from
StarknetSpvVaultContract.contract
maxForkHeadersPerTx
readonly maxForkHeadersPerTx: number = 30;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:135
Maximum amount of fork headers that fit in a single transactions
Implementation of
maxHeadersPerTx
readonly maxHeadersPerTx: number = 40;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:134
Maximum blockheaders that fit in a single transaction
Implementation of
maxShortForkHeadersPerTx
readonly maxShortForkHeadersPerTx: number = 40;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:136
Maximum amount of fork headers that can be submitted at once using the short fork method
Implementation of
BtcRelay.maxShortForkHeadersPerTx
Methods
estimateSynchronizeFee()
estimateSynchronizeFee(requiredBlockheight, feeRate?): Promise<bigint>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:418
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.estimateSynchronizeFee
getFeePerBlock()
getFeePerBlock(feeRate?): Promise<bigint>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:437
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
getForkFeeRate()
getForkFeeRate(signer, forkId): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:452
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
getMainFeeRate()
getMainFeeRate(signer): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:445
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
getTipData()
getTipData(): Promise<{
blockhash: string;
blockheight: number;
chainWork: Buffer;
commitHash: string;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:250
Returns data about current main chain tip stored in the btc relay
Returns
Promise<{
blockhash: string;
blockheight: number;
chainWork: Buffer;
commitHash: string;
}>
Implementation of
retrieveLatestKnownBlockLog()
retrieveLatestKnownBlockLog(): Promise<{
resultBitcoinHeader: B;
resultStoredHeader: StarknetBtcStoredHeader;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:316
Retrieves latest known bitcoin blockheader stored in the BTC Relay and also known to the bitcoin RPC
Returns
Promise<{
resultBitcoinHeader: B;
resultStoredHeader: StarknetBtcStoredHeader;
}>
Implementation of
BtcRelay.retrieveLatestKnownBlockLog
retrieveLogAndBlockheight()
retrieveLogAndBlockheight(blockData, requiredBlockheight?): Promise<{
header: StarknetBtcStoredHeader;
height: number;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:270
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: StarknetBtcStoredHeader;
height: number;
}>
Implementation of
BtcRelay.retrieveLogAndBlockheight
retrieveLogByCommitHash()
retrieveLogByCommitHash(commitmentHash, blockData): Promise<StarknetBtcStoredHeader>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:297
Retrieves stored bitcoin blockheader data by blockheader's commit hash and provided
blockhash from blockData
Parameters
| Parameter | Type | Description |
|---|---|---|
commitmentHash | string | |
blockData | { blockhash: string; } | |
blockData.blockhash | string | - |
Returns
Promise<StarknetBtcStoredHeader>
Implementation of
BtcRelay.retrieveLogByCommitHash
saveForkHeaders()
saveForkHeaders(
signer,
forkHeaders,
storedHeader,
forkId,
tipWork,
feeRate?): Promise<{
computedCommitedHeaders: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:385
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 | StarknetBtcStoredHeader | 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: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>
Implementation of
saveInitialHeader()
saveInitialHeader(
signer,
header,
epochStart,
pastBlocksTimestamps,
feeRate?): Promise<StarknetTx>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:459
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<StarknetTx>
Implementation of
saveMainHeaders()
saveMainHeaders(
signer,
mainHeaders,
storedHeader,
feeRate?): Promise<{
computedCommitedHeaders: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:358
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 | StarknetBtcStoredHeader | Latest committed and stored bitcoin blockheader in the BTC relay |
feeRate? | string | Optional fee rate for the transaction |
Returns
Promise<{
computedCommitedHeaders: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>
Implementation of
saveNewForkHeaders()
saveNewForkHeaders(
signer,
forkHeaders,
storedHeader,
tipWork,
feeRate?): Promise<{
computedCommitedHeaders: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:367
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 | StarknetBtcStoredHeader | 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: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>
Implementation of
saveShortForkHeaders()
saveShortForkHeaders(
signer,
forkHeaders,
storedHeader,
tipWork,
feeRate?): Promise<{
computedCommitedHeaders: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>;
Defined in: atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:402
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 | StarknetBtcStoredHeader | 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: StarknetBtcStoredHeader[];
forkId: number;
lastStoredHeader: StarknetBtcStoredHeader;
tx: StarknetTx;
}>