8000 GitHub - sakukuku/ccc: Common Chains Connector
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

sakukuku/ccc

 
 

Repository files navigation

Logo

CCC

NPM Version GitHub commit activity GitHub last commit GitHub deployments Demo

"CCC - CKBers' Codebase" is the next step of "Common Chains Connector".
Empower yourself with CCC to discover the unlimited potential of CKB.
Interoperate with wallets from different chain ecosystems.
Fully enabling CKB's Turing completeness and cryptographic freedom power.

Preview

This project is still under active development, and we are looking forward to your feedback. Try its demo now here. It showcases how to use CCC for some basic scenarios in CKB.

Transaction Composing

Here's an example for transferring CKB:

const tx = ccc.Transaction.from({
  outputs: [{ lock: toLock, capacity: ccc.fixedPointFrom(amount) }],
});

Tell CCC what you need, and then...

await tx.completeInputsByCapacity(signer);
await tx.completeFeeBy(signer, 1000); // Transaction fee rate
const txHash = await signer.sendTransaction(tx);

We have done everything! Check the demo source code for complete examples.

Installing

We design CCC for both front-end and back-end developers. You need only one pa 819E ckage to fulfil all your needs:

CCC exports everything on the ccc object:

import { ccc } from "@ckb-ccc/<package-name>";

Build and Run

Run the demo of CCC in two steps:

  1. Install packages and build the project
# Navigate to the project directory and run the following commands to install all necessary packages and build the project:
pnpm install
pnpm build
  1. Run the demo in development mode
# Go to the demo directory and start the development server:
cd packages/demo
pnpm run dev

Who uses CCC?

FAQs

Property '*' does not exist on type 'typeof import("*/@ckb-ccc/connector-react/dist/barrel")'.ts(2339)

CCC uses JS's Package Entry Points feature to help tree shaking while exporting everything on the ccc object. Ensure in your tsconfig.json, moduleResolution is set to node16nodenext, or bundler, and resolvePackageJsonExports is not disabled.

Read the TypeScript's Guide for more.

Can I use Lumos with CCC?

While we recommend using CCC for composing transactions, we also provide Lumos patches to:

  • Support the JoyID Wallet.
  • Support the Nostr Wallet.

See lumos-patches: npm install @ckb-ccc/lumos-patches

You can apply patches by:

import { generateDefaultScriptInfos } from "@ckb-ccc/lumos-patches";

// Before using Lumos. You don't need @ckb-lumos/joyid anymore.
registerCustomLockScriptInfos(generateDefaultScriptInfos());

Links

  • Nervos CKB Docs is the documentation website of Nervos CKB.
  • Lumos and its Docs: Lumos provides utils to help compose CKB transactions.
  • RGB++ SDK and its Design: RGB++ is a protocol for issuing assets with Turing-completed VM on BTC L1.
  • Spore SDK and its Docs: The on-chain digital object (DOBs) protocol designed to empower ownership, distribution, and value capture.

About

Common Chains Connector

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 85.9%
  • JavaScript 14.0%
  • CSS 0.1%
0