meta-contract-debug
Version:
Meta Contract SDK
35 lines (34 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.newDataPart = void 0;
const TokenUtil = require("../../common/tokenUtil");
const NFT_ID_LEN = 36;
const NFT_CODE_HASH_LEN = 20;
const NFT_ID_OFFSET = 0 + NFT_ID_LEN;
const NFT_CODE_HASH_OFFSET = NFT_ID_OFFSET + NFT_CODE_HASH_LEN;
function newDataPart(dataPart) {
let nSendersBuf = TokenUtil.getUInt32Buf(dataPart.nSenders);
let receiverTokenAmountArrayBuf = Buffer.alloc(0);
dataPart.receiverTokenAmountArray.forEach((tokenAmount) => {
receiverTokenAmountArrayBuf = Buffer.concat([
receiverTokenAmountArrayBuf,
tokenAmount.toBuffer({ endian: 'little', size: 8 }),
]);
});
let recervierArrayBuf = Buffer.alloc(0);
dataPart.receiverArray.map((address) => {
recervierArrayBuf = Buffer.concat([recervierArrayBuf, address.hashBuffer]);
});
let nReceiversBuf = TokenUtil.getUInt32Buf(dataPart.nReceivers);
let tokenCodeHashBuf = Buffer.from(dataPart.tokenCodeHash, 'hex');
let tokenIDBuf = Buffer.from(dataPart.tokenID, 'hex');
return Buffer.concat([
nSendersBuf,
receiverTokenAmountArrayBuf,
recervierArrayBuf,
nReceiversBuf,
tokenCodeHashBuf,
tokenIDBuf,
]);
}
exports.newDataPart = newDataPart;