
Product
Introducing GitHub Actions Scanning Support
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.
ckt-lumos-molecule
Advanced tools
A molecule parser written in JavaScript that helps developers to parse molecule into a codec map.
const { createParser } = require("@ckb-lumos/molecule");
const parser = createParser();
const codecMap = parser.parse(`
array Uint8 [byte; 1];
`);
codecMap.Uint8.pack(1);
lumos-molecule-codegenA CLI to generate a set of TypeScript-friendly codec from a Molecule schema file.
To use it, you need to install @ckb-lumos/molecule and @ckb-lumos/codec first. The @ckb-lumos/molecule could be devDependencies if you only use it for codegen.
npm install -D @ckb-lumos/molecule
npm install @ckb-lumos/codec
Then you can create a lumos-molecule-codegen.json file to configure the codegen.
Note: if you find the npx lumos-molecule-codegen command is not found, please try to replace npx with
node_modules/.bin/lumos-molecule-codegen.
// lumos-molecule-codegen.json
{
// keep | camelcase
objectKeyFormat: "camelcase",
// prepend the import statement to custom and override the generated codec
prepend: "import { Uint32, Uint64, Uint128 } from './customized'",
// the input schema file
schemaFile: "blockchain.mol",
}
Finally, run the following command to generate code to write to generated.ts.
npx lumos-molecule-codegen > generated.ts
To generate all the molecule files in a directory that match the pattern of **/*.mol, you can use the following configuration.
{
// keep | camelcase
objectKeyFormat: "camelcase",
// prepend the import statement to custom and override the generated codec
// to make the relative import work, you need to run the command in the same directory as the `customized` directory
prepend: "import { Uint32, Uint64, Uint128 } from './customized'",
// the input schema directory, all **/*.mol in the directory will be processed
schemaDir: "schemas",
// the output directory
outDir: "generated",
}
Then run the following command to generate code to the generated directory.
npx lumos-molecule-codegen
The parser inside @ckb-lumos/molecule is based on the EBNF, but the Rust implementation is based on the Pest, there are some differences between them, such as
#struct, table, or union is not supported wellTherefore, to use lumos-molecule-codegen, you need to make sure the comments should not be placed
FAQs
Molecule parser for CKB
We found that ckt-lumos-molecule demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.

Product
Add real-time Socket webhook events to your workflows to automatically receive pull request scan results and security alerts in real time.

Research
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.