Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
3aa4425
chore: search manual proxy lock when signer isn't the proxy provider
ashuralyk Oct 16, 2025
d0af061
chore(release): bump packages version
github-actions[bot] Nov 21, 2025
5d4ad4e
feat(app): signature textarea for signing
Hanssen0 Nov 11, 2025
792ecc0
feat(rgbpp): implement network-aware JWT authentication for BTC Asset…
fghdotio Jul 29, 2025
a25497f
feat(rgbpp): add BTC address balance query interface to `RgbppBtcWallet`
fghdotio Jul 29, 2025
fef3e24
feat(playground): add RGB++ UDT issuance support
fghdotio Nov 19, 2025
f9b52fb
feat(playground): add RGB++ UDT issuance example and comprehensive guide
fghdotio Nov 26, 2025
fce9a70
refactor(rgbpp): migrate from shell to core dependencies and fix imports
fghdotio Nov 26, 2025
90b9290
fix(connector): resolve ESLint no-misused-promises error in setTimeou…
fghdotio Nov 26, 2025
28dfab1
feat(shell): integrate RGB++ protocol into shell package
fghdotio Nov 26, 2025
470b473
refactor(playground): update RGB++ integration
fghdotio Nov 26, 2025
3358203
chore: update pnpm-lock.yaml after rgbpp dependency changes
fghdotio Nov 26, 2025
b7392d8
fix(playground): correct mainnet address prefix check in RGB++ examples
fghdotio Nov 26, 2025
1480322
fix(rgbpp): fix typo
fghdotio Nov 26, 2025
ee04a44
fix(playground): update reference to CkbRgbppUnlockSigner
fghdotio Nov 26, 2025
0375cc3
refactor(playground): remove direct rgbpp dependency from execution e…
fghdotio Nov 26, 2025
ce15f60
fix(demo): correct CkbRgbppUnlockSigner class name spelling
fghdotio Nov 26, 2025
2221d9c
fix(playground): correct typo in RGB++ wallet creation error message
fghdotio Nov 26, 2025
ec1f097
fix(demo): resolve variable name shadowing in RGB++ UDT issuance
fghdotio Nov 26, 2025
83de9e3
refactor(rgbpp): enhance prepareUtxoSeal with robust retry mechanism
fghdotio Dec 2, 2025
9129f44
feat(btc): add SignPsbtOptions support for PSBT signing
fghdotio Nov 11, 2025
685b44c
feat(rgbpp): add SignPsbtOptions support and refactor to composition …
fghdotio Nov 11, 2025
9e97f88
refactor(btc): standardize PSBT API and improve type safety
fghdotio Nov 25, 2025
d335656
fix(rgbpp): resolve build errors and variable naming consistency
fghdotio Dec 2, 2025
c114284
fix(rgbpp): use duck typing instead of constructor.name for wallet de…
fghdotio Dec 3, 2025
7be409a
feat(rgbpp): add Xverse wallet support with automatic PSBT input dete…
fghdotio Dec 3, 2025
d03798e
refactor(xverse): extract psbt logic
fghdotio Dec 9, 2025
3379252
refactor(psbt): add unified sign+push flow and combined-wallet support
fghdotio Dec 9, 2025
a926111
refactor(rgbpp): use signAndBroadcast
fghdotio Dec 9, 2025
eab4987
docs(playground): update supported wallets
fghdotio Dec 9, 2025
ea7e626
chore: bump version of react
Hanssen0 Dec 13, 2025
f458ad0
chore(release): bump packages version
github-actions[bot] Dec 13, 2025
ca5514c
feat(rgbpp): add PublicKeyProvider system for P2TR PSBT inputs
fghdotio Dec 17, 2025
115e653
fix(rgbpp): add UTXO deduplication to prevent duplicate inputs
fghdotio Dec 17, 2025
585781f
refactor: migrate script management to use ccc.KnownScript
fghdotio Dec 17, 2025
d775270
refactor(rgbpp): remove signet network support
fghdotio Dec 17, 2025
9df1343
feat(rgbpp): add getRgbppScriptInfos method and fix async calls
fghdotio Dec 17, 2025
f179154
refactor(rgbpp): make transaction confirmation polling interval confi…
fghdotio Dec 22, 2025
a4b2ab5
refactor(rgbpp): refactor CkbRgbppUnlockSigner to use object paramete…
fghdotio Dec 22, 2025
c74aeca
Merge remote-tracking branch 'upstream/release' into feat/rgbpp-itera…
Dec 23, 2025
208fa66
feat(rgbpp): add linting and formatting support
Dec 23, 2025
15e8a28
refactor(rgbpp): refactor script management with provider pattern
Dec 24, 2025
1d98ace
feat(core): update RGB++ script configurations and remove Bitcoin Sig…
Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions packages/ccc/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @ckb-ccc/ccc

## 1.1.22
### Patch Changes

- Updated dependencies []:
- @ckb-ccc/shell@1.1.22

## 1.1.21
### Patch Changes

Expand Down
2 changes: 1 addition & 1 deletion packages/ccc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ckb-ccc/ccc",
"version": "1.1.21",
"version": "1.1.22",
"description": "CCC - CKBer's Codebase. Common Chains Connector.",
"author": "Hanssen0 <hanssen0@hanssen0.com>",
"license": "MIT",
Expand Down
6 changes: 6 additions & 0 deletions packages/ckb-ccc/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# ckb-ccc

## 1.0.30
### Patch Changes

- Updated dependencies []:
- @ckb-ccc/ccc@1.1.22

## 1.0.29
### Patch Changes

Expand Down
2 changes: 1 addition & 1 deletion packages/ckb-ccc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ckb-ccc",
"version": "1.0.29",
"version": "1.0.30",
"description": "CCC - CKBer's Codebase. Common Chains Connector.",
"author": "Hanssen0 <hanssen0@hanssen0.com>",
"license": "MIT",
Expand Down
13 changes: 13 additions & 0 deletions packages/connector-react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# @ckb-ccc/connector-react

## 1.0.31
### Patch Changes



- [#335](https://github.com/ckb-devrel/ccc/pull/335) [`ea7e626`](https://github.com/ckb-devrel/ccc/commit/ea7e626a81ad4fb78142f0d948843de84478debf) Thanks [@Hanssen0](https://github.com/Hanssen0)! - chore: bump version of react

## 1.0.30
### Patch Changes

- Updated dependencies []:
- @ckb-ccc/connector@1.0.30

## 1.0.29
### Patch Changes

Expand Down
4 changes: 2 additions & 2 deletions packages/connector-react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ckb-ccc/connector-react",
"version": "1.0.29",
"version": "1.0.31",
"description": "CCC - CKBer's Codebase. Common Chains Connector UI Component for React",
"author": "Hanssen0 <hanssen0@hanssen0.com>",
"license": "MIT",
Expand All @@ -25,7 +25,7 @@
},
"devDependencies": {
"@eslint/js": "^9.34.0",
"@types/react": "^19.1.12",
"@types/react": "^19.2.7",
"eslint": "^9.34.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
Expand Down
6 changes: 6 additions & 0 deletions packages/connector/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @ckb-ccc/connector

## 1.0.30
### Patch Changes

- Updated dependencies []:
- @ckb-ccc/ccc@1.1.22

## 1.0.29
### Patch Changes

Expand Down
2 changes: 1 addition & 1 deletion packages/connector/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ckb-ccc/connector",
"version": "1.0.29",
"version": "1.0.30",
"description": "CCC - CKBer's Codebase. Common Chains Connector UI",
"author": "Hanssen0 <hanssen0@hanssen0.com>",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/connector/src/signers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export class SignersController {
hostConnected(): void {
void this.refresh();
// Wait for plugins to be loaded
setTimeout(() => this.refresh(), 500);
setTimeout(() => void this.refresh(), 500);
}

hostDisconnected(): void {
Expand Down
8 changes: 4 additions & 4 deletions packages/core/src/client/clientPublicMainnet.advanced.ts
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ export const MAINNET_SCRIPTS: Record<KnownScript, ScriptInfoLike | undefined> =
cellDep: {
outPoint: {
txHash:
"0x04c5c3e69f1aa6ee27fb9de3d15a81704e387ab3b453965adbe0b6ca343c6f41",
"0xcb4d9f9726e66306bfda6359d39d3bea8b4e5345d0f95f26a3e51626ebe82a63",
index: 0,
},
depType: "code",
Expand All @@ -483,7 +483,7 @@ export const MAINNET_SCRIPTS: Record<KnownScript, ScriptInfoLike | undefined> =
cellDep: {
outPoint: {
txHash:
"0x04c5c3e69f1aa6ee27fb9de3d15a81704e387ab3b453965adbe0b6ca343c6f41",
"0xcb4d9f9726e66306bfda6359d39d3bea8b4e5345d0f95f26a3e51626ebe82a63",
index: 1,
},
depType: "code",
Expand All @@ -500,7 +500,7 @@ export const MAINNET_SCRIPTS: Record<KnownScript, ScriptInfoLike | undefined> =
cellDep: {
outPoint: {
txHash:
"0x6257bf4297ee75fcebe2654d8c5f8d93bc9fc1b3dc62b8cef54ffe166162e996",
"0x3d1c26b966504b09253ad84173bf3baa7b8135c5ff520c32cf70b631c1d08b9b",
index: 0,
},
depType: "code",
Expand All @@ -517,7 +517,7 @@ export const MAINNET_SCRIPTS: Record<KnownScript, ScriptInfoLike | undefined> =
cellDep: {
outPoint: {
txHash:
"0x6257bf4297ee75fcebe2654d8c5f8d93bc9fc1b3dc62b8cef54ffe166162e996",
"0x3d1c26b966504b09253ad84173bf3baa7b8135c5ff520c32cf70b631c1d08b9b",
index: 1,
},
depType: "code",
Expand Down
103 changes: 4 additions & 99 deletions packages/core/src/client/clientPublicTestnet.advanced.ts
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ export const TESTNET_SCRIPTS: Record<KnownScript, ScriptInfoLike> =
cellDep: {
outPoint: {
txHash:
"0xf1de59e973b85791ec32debbba08dff80c63197e895eb95d67fc1e9f6b413e00",
"0x0d1567da0979f78b297d5311442669fbd1bd853c8be324c5ab6da41e7a1ed6e5",
index: 0,
},
depType: "code",
Expand All @@ -495,7 +495,7 @@ export const TESTNET_SCRIPTS: Record<KnownScript, ScriptInfoLike> =
cellDep: {
outPoint: {
txHash:
"0xf1de59e973b85791ec32debbba08dff80c63197e895eb95d67fc1e9f6b413e00",
"0x0d1567da0979f78b297d5311442669fbd1bd853c8be324c5ab6da41e7a1ed6e5",
index: 1,
},
depType: "code",
Expand All @@ -512,7 +512,7 @@ export const TESTNET_SCRIPTS: Record<KnownScript, ScriptInfoLike> =
cellDep: {
outPoint: {
txHash:
"0xde0f87878a97500f549418e5d46d2f7704c565a262aa17036c9c1c13ad638529",
"0x8fb747ff0416a43e135c583b028f98c7b81d3770551b196eb7ba1062dd9acc94",
index: 0,
},
depType: "code",
Expand All @@ -529,7 +529,7 @@ export const TESTNET_SCRIPTS: Record<KnownScript, ScriptInfoLike> =
cellDep: {
outPoint: {
txHash:
"0xde0f87878a97500f549418e5d46d2f7704c565a262aa17036c9c1c13ad638529",
"0x8fb747ff0416a43e135c583b028f98c7b81d3770551b196eb7ba1062dd9acc94",
index: 1,
},
depType: "code",
Expand All @@ -538,98 +538,3 @@ export const TESTNET_SCRIPTS: Record<KnownScript, ScriptInfoLike> =
],
},
});

/**
* Bitcoin Signet specific script overrides for testnet
*
* Contains script configurations that differ when using Bitcoin Signet
* instead of Bitcoin Testnet3. Only RgbppLock and BtcTimeLock are affected.
*
* @example
* ```typescript
* import { ClientPublicTestnet } from "@ckb-ccc/core";
* import { TESTNET_SCRIPTS, TESTNET_SCRIPTS_BTC_SIGNET_OVERRIDES } from "@ckb-ccc/core/advanced";
*
* // Use Bitcoin Testnet3 scripts (default)
* const testnet3Client = new ClientPublicTestnet();
*
* // Use Bitcoin Signet scripts by merging overrides
* const signetClient = new ClientPublicTestnet({
* scripts: {
* ...TESTNET_SCRIPTS,
* ...TESTNET_SCRIPTS_BTC_SIGNET_OVERRIDES
* }
* });
*/
export const TESTNET_SCRIPTS_BTC_SIGNET_OVERRIDES: Partial<
Record<KnownScript, ScriptInfoLike>
> = Object.freeze({
[KnownScript.RgbppLock]: {
codeHash:
"0xd07598deec7ce7b5665310386b4abd06a6d48843e953c5cc2112ad0d5a220364",
hashType: "type",
cellDeps: [
{
cellDep: {
outPoint: {
txHash:
"0x61efdeddbaa0bb4132c0eb174b3e8002ff5ec430f61ba46f30768d683c516eec",
index: 0,
},
depType: "code",
},
type: {
codeHash:
"0x00000000000000000000000000000000000000000000000000545950455f4944",
hashType: "type",
args: "0xb69fe766ce3b7014a2a78ad1fe688d82f1679325805371d2856c3b8d18ebfa5a",
},
},
// Rgbpp lock config cell dep for Bitcoin Signet
{
cellDep: {
outPoint: {
txHash:
"0x61efdeddbaa0bb4132c0eb174b3e8002ff5ec430f61ba46f30768d683c516eec",
index: 1,
},
depType: "code",
},
},
],
},
[KnownScript.BtcTimeLock]: {
codeHash:
"0x80a09eca26d77cea1f5a69471c59481be7404febf40ee90f886c36a948385b55",
hashType: "type",
cellDeps: [
{
cellDep: {
outPoint: {
txHash:
"0x5364b3535965e9eac9a35dd7af8e9e45a61d30a16e115923c032f80b28783e21",
index: 0,
},
depType: "code",
},
type: {
codeHash:
"0x00000000000000000000000000000000000000000000000000545950455f4944",
hashType: "type",
args: "0x32fc8c70a6451a1439fd91e214bba093f9cdd9276bc4ab223430dab5940aff92",
},
},
// btc time lock config cell dep for Bitcoin Signet
{
cellDep: {
outPoint: {
txHash:
"0x5364b3535965e9eac9a35dd7af8e9e45a61d30a16e115923c032f80b28783e21",
index: 1,
},
depType: "code",
},
},
],
},
});
1 change: 0 additions & 1 deletion packages/core/src/client/knownScript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ export enum KnownScript {
TimeLock = "TimeLock",

// RGB++ related scripts (default using Bitcoin Testnet3)
// For Bitcoin Signet, use TESTNET_SCRIPTS_BTC_SIGNET_OVERRIDES from @ckb-ccc/core/advanced
RgbppLock = "RgbppLock",
BtcTimeLock = "BtcTimeLock",
}
1 change: 1 addition & 0 deletions packages/core/src/signer/btc/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from "./psbt.js";
export * from "./signerBtc.js";
export * from "./signerBtcPublicKeyReadonly.js";
export * from "./verify.js";
56 changes: 56 additions & 0 deletions packages/core/src/signer/btc/psbt.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/**
* Options for signing a PSBT (Partially Signed Bitcoin Transaction)
*/
export type SignPsbtOptions = {
/**
* Whether to finalize the PSBT after signing.
* Default is true.
*/
autoFinalized: boolean;
/**
* Array of inputs to sign
*/
toSignInputs: ToSignInput[];
};

/**
* Specification for an input to sign in a PSBT.
* Must specify at least one of: address or pubkey.
*/
export type ToSignInput = {
/**
* Which input to sign (index in the PSBT inputs array)
*/
index: number;
/**
* (Optional) Sighash types to use for signing.
*/
sighashTypes?: number[];
/**
* (Optional) When signing and unlocking Taproot addresses, the tweakSigner is used by default
* for signature generation. Setting this to true allows for signing with the original private key.
* Default value is false.
*/
disableTweakSigner?: boolean;
} & (
| {
/**
* The address whose corresponding private key to use for signing.
*/
address: string;
/**
* The public key whose corresponding private key to use for signing.
*/
publicKey?: string;
}
| {
/**
* The address whose corresponding private key to use for signing.
*/
address?: string;
/**
* The public key whose corresponding private key to use for signing.
*/
publicKey: string;
}
);
Loading