@lidh04/circle-chain-sdk — local dependency: npm i @lidh04/circle-chain-sdkuser, wallet, block, node, miner, common — e.g. import sdk from '@lidh04/circle-chain-sdk' then const { user, wallet, miner } = sdk. README snippets use bare names like login, createWallet; bind them from the matching namespace ( user.login, wallet.createWallet, etc.).src/ — circle-user.js, circle-wallet.js, circle-block.js, circle-node.js, circle-miner.js, circle-common.js; CLI under src/cli/.npm run build — outputs dist/cjs and dist/mjs (TypeScript + fixup).npm run build before npm test when suites need fresh dist/. CLI-only: npm run test:cli (builds, then Jest matches dist/cjs/cli).npm run cli -- <args> or node ./dist/mjs/cli/main.js <args>.Published executable name: circle (see package.json "bin" → dist/mjs/cli/main.js).
bash
npm install -g @lidh04/circle-chain-sdk
circle --help
circle#-d / --dev — use http://localhost:8888 instead of production (e.g. circle --dev user login-send-code --email you@example.com).circle <group> --help.bash
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>
circle config show
circle config set --host your.api.example --timeout-read 8000
circle config (HTTP settings)#User overrides are stored under ~/.ccl/ (or %USERPROFILE%\.ccl\ on Windows) and apply to the Node.js SDK and CLI.
CommandPurposecircle config showPrint effective HTTP settings (bundled defaults + http.config + Geo hint when applicable).circle config set …Merge options into ~/.ccl/http.config (JSON). At least one flag required.
Supported flags for config set:
--host, --protocol ( http | https)--timeout-read, --timeout-write (milliseconds, non‑negative integers as strings in config)--retry-count, --retry-wait-time--ssl-support ( true | false)Example:
bash
circle config set --host api.example.com --protocol https
bash
npm run build
npm run cli -- --help
# or: node ./dist/mjs/cli/main.js --help
CLI tests: src/cli/*.test.js; Jest runs compiled tests under dist/cjs/cli/ per jest.config.cjs.
Responses typically include status (e.g. 200), message, and data. On failure, surface response.message.
sendRegisterVerifyCode → register → login (email + password).sendVerifyCode → login (email + verifyCode).createWallet() — on success, address in data.miner.canMineBlock() — return early if false.miner.fetchMyBlockData(address) — from data: blockHeaderHexString, channelId.miner.mineBlock(blockHeaderHexString, workerCount) — e.g. os.cpus().length - 1; result lines separated by \n; first line is mined header hex.miner.postMyBlock({ address, channelId, blockHeaderHexString: minedBlockHeader }).sendPayVerifyCode → setPayPassword with account: { email }, verifyCode, password.sendTo: email, from, address (to), transContent ( type, uuid, etc.), payPassword.pay: from, to, value, payPassword.addContacts: e.g. email, name, sex, address (location string in README).common namespace (HTTP config & GeoIP)#Available via import sdk from '@lidh04/circle-chain-sdk' then sdk.common.*.
Key exports:
ExportDescriptiongetGatewayHttp()Resolve effective HTTP settings (defaults → Geo hint → user http.config). Returns object with host, protocol, timeoutRead, timeoutWrite, retryCount, retryWaitTime, sslSupport.mergeUserHttpConfig(updates)Write key/value pairs to ~/.ccl/http.config.getUserHttpConfigPath()Return path to ~/.ccl/http.config.clearGatewayHttpCache()Invalidate in-memory cache for config and Geo host hint.refreshGatewayHttpGeoCache()Force refresh GeoIP lookup (Node only).gatewayHttpHostForCountry(countryCode)Return API host for a given ISO country code (CN → bundled default; others → GATEWAY_HTTP_HOST_OVERSEAS).GATEWAY_HTTP_CONFIG_KEYSArray of accepted config keys.GATEWAY_HTTP_HOST_OVERSEASHost string for non-mainland regions: www.circlecoin.me.
GeoIP behavior (Node.js only):
getGatewayHttp() without a valid ~/.ccl/http-geo.cache, the SDK fetches your public IP country from https://ipwho.is/.www.circlecoin.me (overseas host).~/.ccl/http-geo.cache with a 7-day TTL.host in http.config disables Geo-based host selection.CIRCLE_SKIP_GEO=1.~/.ccl/http.config (JSON); common.getGatewayHttp() merges defaults from circle-gateway.js, optional Geo-based host hint, then http.config (explicit host wins and skips Geo for host).~/.ccl/http-geo.cache populated via https://ipwho.is/; mainland CN keeps default API host; other regions use www.circlecoin.me. Disable with CIRCLE_SKIP_GEO=1. Helpers: refreshGatewayHttpGeoCache(), gatewayHttpHostForCountry(), clearGatewayHttpCache().circle config show / circle config set for HTTP settings; build fixup sets execute bit on CLI main.js.expectSdkHttpResult for live API shape; circle-common-geo.test.js; Jest jest.env.cjs for CIRCLE_SKIP_GEO.npm install -g @lidh04/circle-chain-sdk), using circle with --dev, and developing the repo ( npm run cli / node ./dist/mjs/cli/main.js)circle / main.js.user-command, wallet-command, miner-command, block-command; user CLI email-only.src/cli, Jest runs dist/cjs/cli; circle-node test import path fix.Keep this skill aligned with repo README.md and package.json (bin name, exports).