- name
- circle-chain-js-sdk
- description
- >-
Circle Chain JavaScript SDK
Package and layout
- npm:
@lidh04/circle-chain-sdk— local dependency:npm i @lidh04/circle-chain-sdk - Default export: an object with namespaces
user,wallet,block,node,miner,common— e.g.import sdk from '@lidh04/circle-chain-sdk'thenconst { user, wallet, miner } = sdk. README snippets use bare names likelogin,createWallet; bind them from the matching namespace (user.login,wallet.createWallet, etc.). - Source repo:
src/—circle-user.js,circle-wallet.js,circle-block.js,circle-node.js,circle-miner.js,circle-common.js; CLI undersrc/cli/.
Development workflow
- Build:
npm run build— outputsdist/cjsanddist/mjs(TypeScript + fixup). - Tests: Run
npm run buildbeforenpm testwhen suites need freshdist/. CLI-only:npm run test:cli(builds, then Jest matchesdist/cjs/cli). - CLI from a clone: after build,
npm run cli -- <args>ornode ./dist/mjs/cli/main.js <args>.
CLI (Commander.js)
Published executable name: circle (see package.json "bin" → dist/mjs/cli/main.js).
Install globally
npm install -g @lidh04/circle-chain-sdk
circle --helpUsing circle
-d/--dev— usehttp://localhost:8888instead of production (e.g.circle --dev user login-send-code --email you@example.com).- Subcommand groups: user, wallet, block, miner. Discover flags with
circle <group> --help.
circle --help
circle user --help
circle user login-send-code --email you@example.com
circle wallet query public-balance --address <addr>
circle block header-list --base-height 0
circle miner mine --address <your-miner-address>Developing this repo
npm run build
npm run cli -- --help
# or: node ./dist/mjs/cli/main.js --helpCLI tests: src/cli/*.test.js; Jest runs compiled tests under dist/cjs/cli/ per jest.config.cjs.
Programmatic usage patterns
Responses typically include status (e.g. 200), message, and data. On failure, surface response.message.
Auth (register / login)
- Register then password login:
sendRegisterVerifyCode→register→login(email + password). - Login with verify code only:
sendVerifyCode→login(email +verifyCode).
Wallet
createWallet()— on success, address indata.
Local mining
miner.canMineBlock()— return early if false.miner.fetchMyBlockData(address)— fromdata:blockHeaderHexString,channelId.miner.mineBlock(blockHeaderHexString, workerCount)— e.g.os.cpus().length - 1; result lines separated by `\
`; first line is mined header hex.
miner.postMyBlock({ address, channelId, blockHeaderHexString: minedBlockHeader }).- Per README: successful block upload rewards 10 cc (100,000 li) to the miner address.
Pay password
sendPayVerifyCode→setPayPasswordwithaccount: { email },verifyCode,password.
Transfers
sendTo:email,from,address(to),transContent(type,uuid, etc.),payPassword.pay:from,to,value,payPassword.
Contacts
addContacts: e.g.email,name,sex,address(location string in README).
Versions
1.1.1
- README: document global CLI install (
npm install -g @lidh04/circle-chain-sdk), usingcirclewith--dev, and developing the repo (npm run cli/node ./dist/mjs/cli/main.js)
1.1.0
- CLI (Commander.js) for user, wallet, miner, block; entry
circle/main.js. - CLI split into
user-command,wallet-command,miner-command,block-command; user CLI email-only. - CLI tests under
src/cli, Jest runsdist/cjs/cli;circle-nodetest import path fix.
1.0.22 — security improvements
1.0.21 — bugfixes
1.0.20 — local block mining
Keep this skill aligned with repo README.md and package.json (bin name, exports).