diff --git a/.changeset/large-nails-greet.md b/.changeset/large-nails-greet.md new file mode 100644 index 00000000..05b46c33 --- /dev/null +++ b/.changeset/large-nails-greet.md @@ -0,0 +1,5 @@ +--- +"@rgbpp-sdk/ckb": minor +--- + +refactor: Collect all RGB++ inputs without isMax parameter diff --git a/packages/ckb/src/collector/index.ts b/packages/ckb/src/collector/index.ts index 88b5739a..89a2641b 100644 --- a/packages/ckb/src/collector/index.ts +++ b/packages/ckb/src/collector/index.ts @@ -110,6 +110,7 @@ export class Collector { const changeCapacity = config?.minCapacity ?? MIN_CAPACITY; const inputs: CKBComponents.CellInput[] = []; let sumInputsCapacity = BigInt(0); + const isRgbppLock = liveCells.length > 0 && isRgbppLockCellIgnoreChain(liveCells[0].output); for (const cell of liveCells) { inputs.push({ previousOutput: { @@ -119,7 +120,7 @@ export class Collector { since: '0x0', }); sumInputsCapacity += BigInt(cell.output.capacity); - if (sumInputsCapacity >= needCapacity + changeCapacity + fee && !config?.isMax) { + if (sumInputsCapacity >= needCapacity + changeCapacity + fee && !isRgbppLock) { break; } } diff --git a/packages/ckb/src/rgbpp/launch.ts b/packages/ckb/src/rgbpp/launch.ts index 905750b0..a851bfcd 100644 --- a/packages/ckb/src/rgbpp/launch.ts +++ b/packages/ckb/src/rgbpp/launch.ts @@ -57,7 +57,7 @@ export const genRgbppLaunchCkbVirtualTx = async ({ const infoCellCapacity = calculateRgbppTokenInfoCellCapacity(rgbppTokenInfo, isMainnet); const txFee = MAX_FEE; - const { inputs, sumInputsCapacity } = collector.collectInputs(emptyCells, infoCellCapacity, txFee, { isMax: true }); + const { inputs, sumInputsCapacity } = collector.collectInputs(emptyCells, infoCellCapacity, txFee); let rgbppCellCapacity = sumInputsCapacity - infoCellCapacity; const outputs: CKBComponents.CellOutput[] = [ diff --git a/packages/ckb/src/types/collector.ts b/packages/ckb/src/types/collector.ts index 9bbb7716..f1db7bc8 100644 --- a/packages/ckb/src/types/collector.ts +++ b/packages/ckb/src/types/collector.ts @@ -24,7 +24,6 @@ export interface CollectUdtResult extends CollectResult { } export interface CollectConfig { - isMax?: boolean; minCapacity?: bigint; errMsg?: string; }