@swtc/common
Version:
swtc chain information
98 lines • 3.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalize_swt = normalize_swt;
exports.normalize_memo = normalize_memo;
const serializer_1 = require("./serializer");
function normalize_swt(tx_json, reverse = false) {
if (tx_json.Fee >= 10) {
tx_json.Fee = tx_json.Fee / 1000000;
if (tx_json.Amount && !isNaN(tx_json.Amount)) {
tx_json.Amount = `${tx_json.Amount / 1000000}`;
}
if (tx_json.SendMax && !isNaN(tx_json.SendMax)) {
tx_json.SendMax = Number(tx_json.SendMax) / 1000000;
}
if (tx_json.TakerPays && !isNaN(tx_json.TakerPays)) {
tx_json.TakerPays = Number(tx_json.TakerPays) / 1000000;
}
if (tx_json.TakerGets && !isNaN(tx_json.TakerGets)) {
tx_json.TakerGets = Number(tx_json.TakerGets) / 1000000;
}
}
if (reverse && tx_json.Fee < 10) {
tx_json.Fee = tx_json.Fee * 1000000;
if (tx_json.Amount && !isNaN(tx_json.Amount)) {
tx_json.Amount = `${tx_json.Amount * 1000000}`;
}
if (tx_json.SendMax && !isNaN(tx_json.SendMax)) {
tx_json.SendMax = Number(tx_json.SendMax) * 1000000;
}
if (tx_json.TakerPays && !isNaN(tx_json.TakerPays)) {
tx_json.TakerPays = Number(tx_json.TakerPays) * 1000000;
}
if (tx_json.TakerGets && !isNaN(tx_json.TakerGets)) {
tx_json.TakerGets = Number(tx_json.TakerGets) * 1000000;
}
}
}
function normalize_memo(tx_json, reverse = false) {
if (tx_json.Fee >= 10) {
if (tx_json.Memos) {
for (const memo of tx_json.Memos) {
let data = memo.Memo.MemoData;
let format = memo.Memo.MemoFormat;
if (format === "json") {
format = (0, serializer_1.convertStringToHex)(format);
if (typeof data !== "string") {
data = (0, serializer_1.convertStringToHex)(JSON.stringify(data));
}
else {
data = (0, serializer_1.convertStringToHex)(data);
}
}
else if (format === "hex") {
format = (0, serializer_1.convertStringToHex)(format);
if (data.length % 2 > 0) {
data = `${data}0`;
}
}
else if (format) {
if (/g-z/i.test(format)) {
throw new Error("should be in hexdecial format now");
}
}
else {
if (typeof data !== "string") {
data = (0, serializer_1.convertStringToHex)(JSON.stringify(data));
format = (0, serializer_1.convertStringToHex)("json");
}
else {
data = (0, serializer_1.convertStringToHex)(data);
}
}
memo.Memo.MemoData = data;
if (format) {
memo.Memo.MemoFormat = format;
}
}
}
}
if (reverse) {
if (tx_json.Memos) {
for (const memo of tx_json.Memos) {
let format = memo.Memo.MemoFormat;
if (format) {
format = (0, serializer_1.convertHexToString)(format);
memo.Memo.MemoFormat = format;
if (format !== "hex") {
memo.Memo.MemoData = (0, serializer_1.convertHexToString)(memo.Memo.MemoData);
}
}
else {
memo.Memo.MemoData = (0, serializer_1.convertHexToString)(memo.Memo.MemoData);
}
}
}
}
}
//# sourceMappingURL=tx.js.map