From 3385629b041999acf39b5c4206519febfc1c1760 Mon Sep 17 00:00:00 2001 From: TheJuze Date: Mon, 13 Nov 2023 12:02:02 +0300 Subject: [PATCH] update getAmountByORN formula --- package-lock.json | 4 ++-- package.json | 2 +- src/services/Indexer/index.ts | 7 +++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1cff09..3ffc406 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.10-rc27", + "version": "0.20.10-rc28", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.10-rc27", + "version": "0.20.10-rc28", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 70cac37..e516605 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.10-rc27", + "version": "0.20.10-rc28", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Indexer/index.ts b/src/services/Indexer/index.ts index 23eaaa8..bffdd75 100644 --- a/src/services/Indexer/index.ts +++ b/src/services/Indexer/index.ts @@ -125,15 +125,18 @@ class IndexerService { }; readonly getAmountByORN = (amountToken: number, timeLock: number) => { + const alpha = 730 / (30 - Math.sqrt(730 / 7)) ** (1 / 3); const timestamp = Date.now() / 1000; const deltaDaysBN = BigNumber(timeLock).minus(timestamp).dividedBy(DAY); if (deltaDaysBN.lte(0)) return 0; + const multSQRT = deltaDaysBN.dividedBy(WEEK_DAYS).sqrt(); + const multCUBE = deltaDaysBN.dividedBy(alpha).pow(3); + return BigNumber(amountToken) - .multipliedBy(deltaDaysBN.sqrt()) - .dividedBy(BigNumber(WEEK_DAYS).sqrt()); + .multipliedBy(multSQRT.plus(multCUBE)); }; readonly getVotingInfo = (userAddress?: string) => {