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> |
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| .lintstagedrc.json | ||
| .prettierignore | ||
| .prettierrc | ||
| AGENTS.md | ||
| codegen.yml | ||
| eslint.config.js | ||
| jest.config.cjs | ||
| jest.resolver.cjs | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| yarn.lock | ||
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);