From 25fb5149909de334c09fa02e453a6b9e28e40f61 Mon Sep 17 00:00:00 2001 From: cyphercodes Date: Fri, 26 Jun 2026 06:32:49 +0300 Subject: [PATCH] fix: rehydrate serialized BigNumber dishes --- src/core/Dish.mjs | 2 +- tests/node/tests/Dish.mjs | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/Dish.mjs b/src/core/Dish.mjs index 11b1ff9f..bd2a2757 100755 --- a/src/core/Dish.mjs +++ b/src/core/Dish.mjs @@ -292,7 +292,7 @@ class Dish { and reinitialise it as a BigNumber object. */ if (Object.keys(this.value).sort().equals(["c", "e", "s"])) { - const temp = new BigNumber(); + const temp = new BigNumber(0); temp.c = this.value.c; temp.e = this.value.e; temp.s = this.value.s; diff --git a/tests/node/tests/Dish.mjs b/tests/node/tests/Dish.mjs index 58da00bf..82024ccf 100644 --- a/tests/node/tests/Dish.mjs +++ b/tests/node/tests/Dish.mjs @@ -9,4 +9,14 @@ TestRegister.addApiTests([ assert(dish.presentAs); }), + it("Dish - isValid: rehydrates serialized BigNumber values", () => { + const dish = new Dish({ c: [1], e: 0, s: 1 }, Dish.BIG_NUMBER); + assert.strictEqual(dish.value.toString(), "1"); + }), + + it("Dish - isValid: rehydrates serialized NaN BigNumber values", () => { + const dish = new Dish({ c: null, e: null, s: null }, Dish.BIG_NUMBER); + assert.strictEqual(dish.value.toString(), "NaN"); + }), + ]);