Skip to content

Commit 75593d3

Browse files
committed
fix: revision for ckb-devrel#210
1 parent b0336c1 commit 75593d3

17 files changed

+446
-471
lines changed

packages/demo/src/app/utils/(tools)/Molecule/Molecule.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import { Textarea } from "@/src/components/Textarea";
1010
import { Button } from "@/src/components/Button";
1111

1212
type Props = {
13-
updateCodecMap: (token: any) => void;
13+
updateCodecRecord: (codecRecord: ccc.molecule.CodecRecord) => void;
1414
};
1515

16-
export const MoleculeParser: React.FC<Props> = ({ updateCodecMap }) => {
16+
export const MoleculeParser: React.FC<Props> = ({ updateCodecRecord }) => {
1717
const [inputMol, setInputMol] = useState(() => {
1818
if (typeof window !== "undefined") {
1919
return localStorage.getItem("cachedMol") || "";
@@ -27,25 +27,25 @@ export const MoleculeParser: React.FC<Props> = ({ updateCodecMap }) => {
2727
const handleConfirm = useCallback(() => {
2828
try {
2929
// get user input schema, and append with primitive schema
30-
const userCodecMap = ccc.molecule.getCodecMapFromMol(
30+
const userCodecRecord = ccc.molecule.parseMoleculeSchema(
3131
inputMol + blockchainSchema,
3232
{
33-
refs: builtinCodecs,
33+
extraReferences: builtinCodecs,
3434
},
3535
);
36-
const codecMap = mergeBuiltinCodecs(userCodecMap);
36+
const codecRecord = mergeBuiltinCodecs(userCodecRecord);
3737
setParseSuccess(true);
38-
updateCodecMap(codecMap);
38+
updateCodecRecord(codecRecord);
3939
log("Successfully parsed schema");
4040
if (typeof window !== "undefined") {
4141
localStorage.setItem("cachedMol", inputMol);
4242
}
43-
} catch (error: any) {
43+
} catch (e: any) {
4444
setParseSuccess(false);
45-
updateCodecMap({});
46-
error(error.message);
45+
updateCodecRecord({});
46+
error(e.message);
4747
}
48-
}, [inputMol, log, updateCodecMap]);
48+
}, [error, inputMol, log, updateCodecRecord]);
4949

5050
return (
5151
<div style={{ marginBottom: 16 }}>

packages/demo/src/app/utils/(tools)/Molecule/SchemaSelect.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,36 @@ import { ccc } from "@ckb-ccc/connector-react";
33
import { Dropdown } from "@/src/components/Dropdown";
44

55
type Props = {
6-
codecMap: ccc.molecule.CodecMap;
6+
codecRecord: ccc.molecule.CodecRecord;
77
selectedCodecName: string;
88
onSelectCodec: (name: string) => void;
99
mode: "decode" | "encode";
1010
onSelectMode: (mode: "decode" | "encode") => void;
1111
};
1212

1313
const createCodecOptionsFromMap = (
14-
codecMap: ccc.molecule.CodecMap,
14+
codecRecord: ccc.molecule.CodecRecord,
1515
): string[] => {
16-
return Object.keys(codecMap);
16+
return Object.keys(codecRecord);
1717
};
1818

1919
export const SchemaSelect: React.FC<Props> = ({
2020
onSelectCodec,
2121
selectedCodecName,
22-
codecMap,
22+
codecRecord,
2323
mode,
2424
onSelectMode,
2525
}) => {
2626
const handleChange = (newValue: string | null) => {
2727
onSelectCodec(newValue as string);
2828
};
29-
const schemaOptions = createCodecOptionsFromMap(codecMap).map((schema) => ({
30-
name: schema,
31-
displayName: schema,
32-
iconName: "Hash" as const,
33-
}));
29+
const schemaOptions = createCodecOptionsFromMap(codecRecord).map(
30+
(schema) => ({
31+
name: schema,
32+
displayName: schema,
33+
iconName: "Hash" as const,
34+
}),
35+
);
3436

3537
return (
3638
<div className="flex flex-row items-center gap-4">

packages/demo/src/app/utils/(tools)/Molecule/constants.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ccc } from "@ckb-ccc/connector-react";
33
/**
44
* built-in re-writable codecs
55
*/
6-
export const builtinCodecs: ccc.molecule.CodecMap = {
6+
export const builtinCodecs: ccc.molecule.CodecRecord = {
77
Uint8: ccc.mol.Uint8,
88
Uint16: ccc.mol.Uint16,
99
Uint32: ccc.mol.Uint32,
@@ -26,8 +26,8 @@ export const builtinCodecs: ccc.molecule.CodecMap = {
2626
* @param userTokens
2727
*/
2828
export const mergeBuiltinCodecs = (
29-
userCodecs: ccc.molecule.CodecMap,
30-
): ccc.molecule.CodecMap => {
29+
userCodecs: ccc.molecule.CodecRecord,
30+
): ccc.molecule.CodecRecord => {
3131
return { ...userCodecs, ...builtinCodecs };
3232
};
3333

packages/demo/src/app/utils/(tools)/Molecule/page.tsx

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,52 +18,51 @@ export default function Molecule() {
1818
const { createSender } = useApp();
1919
const { log } = createSender("Molecule");
2020

21-
const [codecMap, setCodecMap] = useState<ccc.molecule.CodecMap>({});
21+
const [codecRecord, setCodecRecord] = useState<ccc.molecule.CodecRecord>({});
2222
const [selectedCodecName, setSelectedCodecName] = useState<string>("");
2323
const [mode, setMode] = useState<"decode" | "encode">("decode");
24-
const handleCodecMap = useCallback(
25-
(codecMap: ccc.molecule.CodecMap) => {
26-
setCodecMap(codecMap);
27-
setSelectedCodecName(Object.keys(codecMap)[0]);
24+
const handleCodecRecord = useCallback(
25+
(codecRecord: ccc.molecule.CodecRecord) => {
26+
setCodecRecord(codecRecord);
27+
setSelectedCodecName(Object.keys(codecRecord)[0]);
2828
},
29-
[setCodecMap, setSelectedCodecName],
29+
[setCodecRecord, setSelectedCodecName],
3030
);
3131

3232
const handleSelectCodec = (name: string) => {
3333
setSelectedCodecName(name);
3434
};
3535

3636
useEffect(() => {
37-
// TODO: get from local storage
3837
let cachedMol = localStorage.getItem("cachedMol");
3938
if (!cachedMol) {
4039
cachedMol = "";
4140
}
4241

43-
const userCodecMap = ccc.molecule.getCodecMapFromMol(
42+
const userCodecRecord = ccc.molecule.parseMoleculeSchema(
4443
cachedMol + blockchainSchema,
4544
{
46-
refs: builtinCodecs,
45+
extraReferences: builtinCodecs,
4746
},
4847
);
49-
const codecMap = mergeBuiltinCodecs(userCodecMap);
50-
handleCodecMap(codecMap);
51-
}, [handleCodecMap]);
48+
const codecRecord = mergeBuiltinCodecs(userCodecRecord);
49+
handleCodecRecord(codecRecord);
50+
}, [handleCodecRecord]);
5251

5352
return (
5453
<div className="flex w-full flex-col items-stretch">
55-
<MoleculeParser updateCodecMap={handleCodecMap} />
56-
{Object.keys(codecMap).length > 0 && (
54+
<MoleculeParser updateCodecRecord={handleCodecRecord} />
55+
{Object.keys(codecRecord).length > 0 && (
5756
<SchemaSelect
5857
selectedCodecName={selectedCodecName}
59-
codecMap={codecMap}
58+
codecRecord={codecRecord}
6059
onSelectCodec={handleSelectCodec}
6160
mode={mode}
6261
onSelectMode={setMode}
6362
/>
6463
)}
65-
{Object.keys(codecMap).length > 0 && selectedCodecName !== "" && (
66-
<DataInput codec={codecMap[selectedCodecName]} mode={mode} />
64+
{Object.keys(codecRecord).length > 0 && selectedCodecName !== "" && (
65+
<DataInput codec={codecRecord[selectedCodecName]} mode={mode} />
6766
)}
6867
</div>
6968
);

packages/molecule/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
Fully enabling CKB's Turing completeness and cryptographic freedom power.
3737
</p>
3838

39-
Get `CodecMap` from Molecule schema.
39+
Get `CodecRecord` from Molecule schema.
4040

4141
<h3 align="center">
4242
Read more about CCC on <a href="https://docs.ckbccc.com">our website</a> or <a href="https://github.com/ckb-devrel/ccc">GitHub Repo</a>.

packages/molecule/jest.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ module.exports = {
1111
{ tsconfig: "tsconfig.json" },
1212
],
1313
},
14+
moduleNameMapper: {
15+
"^(\\.{1,2}/.*)\\.js$": "$1", // strip .js extension for imports
16+
},
1417
};

packages/molecule/src/barrel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from "./molecule";
2-
export * from "./type";
1+
export * from "./molecule.js";
2+
export * from "./type.js";

0 commit comments

Comments
 (0)