From 2738d8b1f71ca6c65dad9d679b54b7bdcb6c019a Mon Sep 17 00:00:00 2001 From: Dylan Duan Date: Thu, 21 Mar 2024 11:20:53 +0800 Subject: [PATCH] feat: add isRgbppLockCell and isBtcTimeLockCell utils --- packages/ckb/src/utils/rgbpp.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/ckb/src/utils/rgbpp.ts b/packages/ckb/src/utils/rgbpp.ts index c515c223..acd31aae 100644 --- a/packages/ckb/src/utils/rgbpp.ts +++ b/packages/ckb/src/utils/rgbpp.ts @@ -9,6 +9,7 @@ import { } from '../constants'; import { hexToBytes, serializeOutPoint, serializeOutput, serializeScript } from '@nervosnetwork/ckb-sdk-utils'; import { blockchain } from '@ckb-lumos/base'; +import { Collector } from '../collector'; export const genRgbppLockScript = (rgbppLockArgs: Hex, isMainnet: boolean) => { return { @@ -107,3 +108,19 @@ export const replaceLockArgsWithRealBtcTxId = (lockArgs: Hex, txId: Hex): Hex => } return `0x${remove0x(lockArgs).substring(0, argsLength - BTC_TX_ID_SIZE)}${remove0x(txId)}`; }; + +export const isRgbppLockCell = async (collector: Collector, outPoint: CKBComponents.OutPoint, isMainnet: boolean) => { + const rgbppLock = getRgbppLockScript(isMainnet); + const rgbppCellLock = (await collector.getLiveCell(outPoint)).output.lock; + const isRgbppLock = rgbppCellLock.codeHash === rgbppLock.codeHash && rgbppCellLock.hashType === rgbppLock.hashType; + return isRgbppLock; +}; + +export const isBtcTimeLockCell = async (collector: Collector, outPoint: CKBComponents.OutPoint, isMainnet: boolean) => { + const btcTimeLock = getBtcTimeLockScript(isMainnet); + const btcTimeCellLock = (await collector.getLiveCell(outPoint)).output.lock; + const isBtcTimeLock = + btcTimeCellLock.codeHash === btcTimeLock.codeHash && btcTimeCellLock.hashType === btcTimeLock.hashType; + + return isBtcTimeLock; +};