UNPKG

@ckb-lumos/codec

Version:

Make your own molecule binding in JavaScript(TypeScript)

64 lines (60 loc) 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WitnessArgs = exports.BytesVec = exports.BytesOpt = exports.Bytes = exports.Byte32Vec = exports.Byte32 = void 0; exports.WitnessArgsOf = WitnessArgsOf; exports.createFixedHexBytesCodec = createFixedHexBytesCodec; var _base = require("./base"); var _bytes = require("./bytes"); var _molecule = require("./molecule"); function createFixedHexBytesCodec(byteLength) { return (0, _base.createFixedBytesCodec)({ byteLength, pack: hex => (0, _bytes.bytify)(hex), unpack: buf => (0, _bytes.hexify)(buf) }); } /** * placeholder codec, generally used as a placeholder * ``` * // for example, when some BytesOpt is not used, it will be filled with this codec * // option BytesOpt (Bytes); * const UnusedBytesOpt = UnknownOpt * ``` */ // export const UnusedOpt = option(Unknown); // vector Bytes <byte> const Bytes = exports.Bytes = (0, _molecule.byteVecOf)({ pack: _bytes.bytify, unpack: _bytes.hexify }); const BytesOpt = exports.BytesOpt = (0, _molecule.option)(Bytes); const BytesVec = exports.BytesVec = (0, _molecule.vector)(Bytes); const Byte32 = exports.Byte32 = createFixedHexBytesCodec(32); const Byte32Vec = exports.Byte32Vec = (0, _molecule.vector)(Byte32); function WitnessArgsOf(payload) { return (0, _molecule.table)({ lock: (0, _molecule.option)((0, _molecule.byteVecOf)(payload.lock)), input_type: (0, _molecule.option)((0, _molecule.byteVecOf)(payload.input_type)), output_type: (0, _molecule.option)((0, _molecule.byteVecOf)(payload.output_type)) }, ["lock", "input_type", "output_type"]); } const HexifyCodec = (0, _base.createBytesCodec)({ pack: _bytes.bytify, unpack: _bytes.hexify }); /** * * @example * ```ts * // secp256k1 lock witness * WitnessArgs.pack({ lock: '0x' + '00'.repeat(65) }) * ``` */ const WitnessArgs = exports.WitnessArgs = WitnessArgsOf({ lock: HexifyCodec, input_type: HexifyCodec, output_type: HexifyCodec }); //# sourceMappingURL=blockchain.js.map