UNPKG

meta-contract

Version:

Meta Contract SDK

32 lines (31 loc) 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseDataPart = exports.newDataPart = exports.getNftCodehHash = exports.getNftID = void 0; const tokenUtil_1 = require("../../common/tokenUtil"); const NFT_ID_LEN = 36; const NFT_CODE_HASH_LEN = 20; const DATA_VERSION_LEN = 5; const NFT_ID_OFFSET = DATA_VERSION_LEN + NFT_ID_LEN; const NFT_CODE_HASH_OFFSET = NFT_ID_OFFSET + NFT_CODE_HASH_LEN; function getNftID(script) { return script.slice(script.length - NFT_ID_OFFSET, script.length - NFT_ID_OFFSET + NFT_ID_LEN); } exports.getNftID = getNftID; function getNftCodehHash(script) { return script.slice(script.length - NFT_CODE_HASH_OFFSET, script.length - NFT_CODE_HASH_OFFSET + NFT_CODE_HASH_LEN); } exports.getNftCodehHash = getNftCodehHash; function newDataPart(dataPart) { const buf = Buffer.concat([dataPart.nftCodeHash, dataPart.nftID]); return (0, tokenUtil_1.buildScriptData)(buf); } exports.newDataPart = newDataPart; function parseDataPart(scriptBuf) { let nftID = getNftID(scriptBuf); let nftCodeHash = getNftCodehHash(scriptBuf); return { nftID, nftCodeHash, }; } exports.parseDataPart = parseDataPart;