JavaScript 和大数,计算储备数据erc20和bep20
JavaScript and big numbers, calculating reserve data erc20 and bep20
我搜索了一整天,仍然没有解决方案。
我的问题是我正在使用 JavaScript 获取 EVM 区块链数据,但我使用的任何库都无法正常工作。
// pair
// 0 = BMON
// 1 = BUSD
// transaction
const tx0 = 2755738843649989653057n; // amount0Out BMON
const tx1 = 113747760332474227520n; // amount1In BUSD
// reserve after transaction
const x = 466822693713887341798087n; // reserve0 BMON
const y = 19334468154310748213608n; // reserve1 BUSD
const k = x * y;
console.log(k)
const newX = x + tx0;
const newY = y - tx1;
const newK = newX * newY;
console.log(newK)
在 Uniswap 中,价格基于准备金。我从 Swap 事件中获取数据进出的内容和数量。
为了测试我的计算是否 100% 准确,我制作了上面的小脚本。
我在交易后得到储备数据,但我需要知道交易前的价格。我减去输入的内容并添加输出的内容以创建新的储备。储备常数必须始终相同。当我执行 add/subtract 时,我的代码知道交易后的储备金和交易前的储备金,但不知何故,常量与应有的不一样。
我尝试了 bigInt、BigNumber.js、普通数字等。没有任何效果。我需要它 100% 准确地工作。
有没有人可以帮助我?
调用Number.MAX_SAFE_INTEGER
你会找到最大安全整数值。如果你超出这个范围,数学就会变得棘手,你可能不会对结果满意。
你的数学必须保持在最大安全整数范围内才能取得好成绩。
您可以探索 BigInt,但它有自己的警告,就像浮点数一样。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
如果觉得有用,请考虑upvoting/accepting
我搜索了一整天,仍然没有解决方案。 我的问题是我正在使用 JavaScript 获取 EVM 区块链数据,但我使用的任何库都无法正常工作。
// pair
// 0 = BMON
// 1 = BUSD
// transaction
const tx0 = 2755738843649989653057n; // amount0Out BMON
const tx1 = 113747760332474227520n; // amount1In BUSD
// reserve after transaction
const x = 466822693713887341798087n; // reserve0 BMON
const y = 19334468154310748213608n; // reserve1 BUSD
const k = x * y;
console.log(k)
const newX = x + tx0;
const newY = y - tx1;
const newK = newX * newY;
console.log(newK)
在 Uniswap 中,价格基于准备金。我从 Swap 事件中获取数据进出的内容和数量。
为了测试我的计算是否 100% 准确,我制作了上面的小脚本。
我在交易后得到储备数据,但我需要知道交易前的价格。我减去输入的内容并添加输出的内容以创建新的储备。储备常数必须始终相同。当我执行 add/subtract 时,我的代码知道交易后的储备金和交易前的储备金,但不知何故,常量与应有的不一样。
我尝试了 bigInt、BigNumber.js、普通数字等。没有任何效果。我需要它 100% 准确地工作。
有没有人可以帮助我?
调用Number.MAX_SAFE_INTEGER
你会找到最大安全整数值。如果你超出这个范围,数学就会变得棘手,你可能不会对结果满意。
你的数学必须保持在最大安全整数范围内才能取得好成绩。
您可以探索 BigInt,但它有自己的警告,就像浮点数一样。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
如果觉得有用,请考虑upvoting/accepting