@nervosnetwork/ckb-sdk-utils
Version:
Utils module of @nervosnetwork/ckb-sdk-core
37 lines • 1.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeScript = exports.serializeArgs = exports.serializeHashType = exports.serializeCodeHash = void 0;
const basic_js_1 = require("./basic.js");
const index_js_1 = require("../exceptions/index.js");
const serializeCodeHash = (codeHash) => (0, basic_js_1.serializeArray)(codeHash);
exports.serializeCodeHash = serializeCodeHash;
const serializeHashType = (hashType) => {
if (hashType === 'data')
return '0x00';
if (hashType === 'type')
return '0x01';
if (hashType === 'data1')
return '0x02';
if (hashType === 'data2')
return '0x04';
throw new TypeError("Hash type must be either of 'data' or 'type'");
};
exports.serializeHashType = serializeHashType;
const serializeArgs = (args) => (0, basic_js_1.serializeFixVec)(args);
exports.serializeArgs = serializeArgs;
const serializeScript = (script) => {
if (!script)
throw new index_js_1.ParameterRequiredException('Script');
const { codeHash = '', hashType, args = '' } = script;
const serializedCodeHash = (0, exports.serializeCodeHash)(codeHash);
const serializedHashType = (0, exports.serializeHashType)(hashType);
const serializedArgs = (0, exports.serializeArgs)(args);
const table = new Map([
['codeHash', serializedCodeHash],
['hashType', serializedHashType],
['args', serializedArgs],
]);
return (0, basic_js_1.serializeTable)(table);
};
exports.serializeScript = serializeScript;
//# sourceMappingURL=script.js.map
;