harb/kraiken-lib
traddoo beefe22f90 fix(web-app): position ID, issuance earned (#96)
Bug #1: Position ID Transformation Issue (#95)

  Problem: Frontend applied incorrect byte conversion to position IDs, causing transactions to fail with "NoPermission"
  errors.

  Root Cause: formatId() function did little-endian byte conversion on already-correct numeric strings from GraphQL.

  Fix: Direct conversion BigInt(obj.id) instead of formatId(obj.id as Hex) in usePositions.ts.

  Result: Users can now successfully stake/unstake positions.

  ---
  Bug #2: Issuance Earned Calculation Error (#97)

  Problem: Frontend showed negative "Issuance Earned" values (e.g., -4,991 KRK) due to wrong mathematical formula.

  Root Cause: Formula calculated position.totalSupplyInit - currentTotalSupply (always negative when supply increases).

  Fix: Correct formula (currentTotalSupply - position.totalSupplyInit) × position.share in Vue components.

  Result: Shows realistic positive earnings and enables proper economic monitoring.

Co-authored-by: steve <steve@harberg.dev>
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/96
Co-authored-by: traddoo <traddoo@noreply.codeberg.org>
Co-committed-by: traddoo <traddoo@noreply.codeberg.org>
2025-11-20 19:44:10 +01:00
..
src fix(web-app): position ID, issuance earned (#96) 2025-11-20 19:44:10 +01:00
.gitignore Complete project rename from HARB/Harberg to KRAIKEN with KRK token symbol 2025-07-11 13:47:42 +02:00
.lintstagedrc.json tax rate, version and compose (#70) 2025-10-07 19:26:08 +02:00
.prettierignore tax rate, version and compose (#70) 2025-10-07 19:26:08 +02:00
.prettierrc lint/lib (#49) 2025-10-03 11:57:01 +02:00
AGENTS.md refactor: migrate kraiken-lib to explicit subpath imports (BREAKING CHANGE) (#89) 2025-11-20 18:54:53 +01:00
codegen.yml health checks (#39) 2025-10-02 14:37:59 +02:00
eslint.config.js tax rate, version and compose (#70) 2025-10-07 19:26:08 +02:00
jest.config.cjs fix: configure Jest for ES modules in kraiken-lib (#88) 2025-11-08 12:03:48 +01:00
jest.resolver.cjs fix: configure Jest for ES modules in kraiken-lib (#88) 2025-11-08 12:03:48 +01:00
package-lock.json improve web-app config 2025-10-11 10:55:49 +00:00
package.json fix(web-app): position ID, issuance earned (#96) 2025-11-20 19:44:10 +01:00
README.md refactor: migrate kraiken-lib to explicit subpath imports (BREAKING CHANGE) (#89) 2025-11-20 18:54:53 +01:00
tsconfig.json fix/podman-postgres-integration (#37) 2025-10-01 20:26:49 +02:00
yarn.lock improve web-app config 2025-10-11 10:55:49 +00:00

Test

yarn test

Import

yarn add kraiken-lib

then

import { bytesToUint256LittleEndian, uint256ToBytesLittleEndian } from "kraiken-lib/subgraph";

uint256ToBytesLittleEndian(3n);

get Snatch List

import { getSnatchList } from "kraiken-lib/snatch";

const positionIds = getSnatchList(positions, neededShares, maxTaxRateDecimal, stakeTotalSupply);