Skip to content

Commit

Permalink
ref: Skip if the block height less than spv start block height for bt…
Browse files Browse the repository at this point in the history
…c time cells
  • Loading branch information
duanyytop committed Jul 24, 2024
1 parent 2e9609b commit cc32f43
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,11 @@ export const JWT_IGNORE_URLS = ['/token', '/docs', '/cron', '/internal', '/healt
export const SWAGGER_PROD_IGNORE_URLS = isAdminMode ? ['/token', '/cron'] : ['/cron'];

export const VERCEL_MAX_DURATION = 300;

// estimate time: 2024-04-03 09:45:17
// ref: https://mempool.space/testnet/block/000000000000000493ba5eebf0602f3e0e5381dd35f763a62ca7ea135343a0d6
export const BTC_TESTNET_SPV_START_BLOCK_HEIGHT = 2584900;

// estimate time: 2024-04-02 06:20:03
// ref: https://mempool.space/block/0000000000000000000077d98a103858c7d7cbc5ba67a4135f348a436bec1748
export const BTC_MAINNET_SPV_START_BLOCK_HEIGHT = 837300;
11 changes: 10 additions & 1 deletion src/services/unlocker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
import { btcTxIdFromBtcTimeLockArgs } from '@rgbpp-sdk/ckb/lib/utils/rgbpp';
import { BtcAssetsApi } from '@rgbpp-sdk/service';
import { Cradle } from '../container';
import { TestnetTypeMap } from '../constants';
import { BTC_MAINNET_SPV_START_BLOCK_HEIGHT, BTC_TESTNET_SPV_START_BLOCK_HEIGHT, TestnetTypeMap } from '../constants';

interface IUnlocker {
getNextBatchLockCell(): Promise<IndexerCell[]>;
Expand Down Expand Up @@ -54,6 +54,10 @@ export default class Unlocker implements IUnlocker {
return getBtcTimeLockScript(this.isMainnet, this.testnetType);
}

private get btcSpvStartBlockHeight() {
return this.isMainnet ? BTC_MAINNET_SPV_START_BLOCK_HEIGHT : BTC_TESTNET_SPV_START_BLOCK_HEIGHT;
}

/**
* Get next batch of BTC time lock cells
*/
Expand All @@ -73,6 +77,11 @@ export default class Unlocker implements IUnlocker {
const btcTx = await this.cradle.bitcoin.getTx({ txid: btcTxid });
const blockHeight = btcTx.status.block_height;

// skip if the block height of the btc txid is less than the BTC SPV start height
if (blockHeight && blockHeight < this.btcSpvStartBlockHeight) {
continue;
}

// skip if btc tx not confirmed $after blocks yet
if (!blockHeight || blocks - blockHeight < after) {
continue;
Expand Down

0 comments on commit cc32f43

Please sign in to comment.