meta-contract
Version:
Meta Contract SDK
32 lines (31 loc) • 1.2 kB
JavaScript
;
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;