johba
d9b5131101
fix: Get KRK local swap, WalletCard on all variants ( #146 , #150 ) ( #165 )
2026-02-20 09:18:51 +01:00
johba
b3b7ab72f9
feat: wallet transaction history table ( #155 ) ( #164 )
2026-02-20 09:18:10 +01:00
johba
db3633425a
feat: shared @harb/web3 package + landing wallet connect ( #157 ) ( #159 )
2026-02-19 20:18:27 +01:00
johba
66106077ba
feat: wallet P&L with average cost basis tracking ( #156 ) ( #158 )
2026-02-19 16:22:23 +01:00
johba
76b2635e63
Replace UBI with ETH reserve in ring buffer, fix Dockerfile HEALTHCHECK, enhance LiveStats ( #154 )
2026-02-19 14:47:15 +01:00
johba
31063379a8
feat/ponder-lm-indexing ( #142 )
2026-02-18 00:19:05 +01:00
openhands
de3c8eef94
docs: consolidate and update all documentation for launch readiness
...
- Rewrite root README.md with proper project overview, tech stack, and repo structure
- Remove duplicate CLAUDE.md files (root, onchain, ponder) — AGENTS.md is the standard
- Update HARBERG.md to reflect Stage 1 completion and Stage 2 evolution
- Delete stale onchain/testing_todos.md (all high-priority items completed)
- Update VERSION_VALIDATION.md for VERSION=2
- Trim root AGENTS.md: replace Docker duplication with docs/docker.md reference
- Trim onchain/AGENTS.md (129→71 lines): reference TECHNICAL_APPENDIX for formulas
- Trim web-app/AGENTS.md (278→55 lines): remove internal API docs, keep architecture
- Rewrite onchain/README.md: add contract table, deployment addresses, analysis links
- Trim services/ponder/README.md: remove stale subgraph comparison
- Add otterscan to docs/docker.md service topology
- Update TECHNICAL_APPENDIX.md references
Net: -388 lines across documentation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:22:34 +00:00
openhands
21857ae8ca
feat: protocol stats display + parameter sweep fuzzing infrastructure ( #106 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:09:11 +00:00
openhands
37b1002dae
feat: add Otterscan block explorer to dev environment ( #109 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:55:07 +00:00
johba
e5e1308e72
refactor: consolidate CI and local dev orchestration ( #108 )
...
## Summary
- Extract shared bootstrap functions into `scripts/bootstrap-common.sh` (eliminates ~120 lines of duplicated forge/cast commands from e2e.yml)
- Create reusable `scripts/wait-for-service.sh` for health checks (replaces 60-line inline wait-for-stack)
- Merge dev and CI entrypoints into unified scripts branching on `CI` env var (delete `docker/ci-entrypoints/`)
- Replace 4 per-service CI Dockerfiles with parameterized `docker/Dockerfile.service-ci`
- Add `sync-tax-rates.mjs` to CI image builder stage
- Fix: CI now grants txnBot recenter access (was missing)
- Fix: txnBot funding parameterized (CI=10eth, local=1eth)
- Delete 5 obsolete migration docs and 4 DinD integration files
Net: -1540 lines removed
Closes #107
## Test plan
- [ ] E2E pipeline passes (bootstrap sources shared script, services use old images with commands override)
- [ ] build-ci-images pipeline builds all 4 services with unified Dockerfile
- [ ] Local dev stack boots via `./scripts/dev.sh start`
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/108
2026-02-03 12:07:28 +01:00
johba
4277f19b68
feature/ci ( #84 )
...
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/84
2026-02-02 19:24:57 +01:00
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
johba
a555a2fdd1
refactor: migrate kraiken-lib to explicit subpath imports (BREAKING CHANGE) ( #89 )
...
Removes the barrel export pattern in favor of explicit subpath imports
for better tree-shaking and clearer dependencies.
## Breaking Changes
- Removed `src/helpers.ts` barrel export
- Removed `./helpers` from package.json exports
- Root `kraiken-lib` import now raises build errors
- Consumers MUST use explicit subpaths:
- `kraiken-lib/abis` - Contract ABIs
- `kraiken-lib/staking` - Staking helpers
- `kraiken-lib/snatch` - Snatch selection
- `kraiken-lib/ids` - Position ID utilities
- `kraiken-lib/subgraph` - Byte conversion utilities
- `kraiken-lib/taxRates` - Tax rate constants
- `kraiken-lib/version` - Version validation
## Changes
- kraiken-lib:
- Bumped version to 1.0.0 (breaking change)
- Updated src/index.ts to raise build errors
- Added backward-compatible ABI aliases (KraikenAbi, StakeAbi)
- Updated all test files to use .js extensions and new imports
- Updated documentation (README, AGENTS.md)
- Consumer updates:
- services/ponder: Updated ponder.config.ts to use kraiken-lib/abis
- web-app: Updated all imports to use subpaths
- composables/usePositions.ts: kraiken-lib/subgraph
- contracts/harb.ts: kraiken-lib/abis
- contracts/stake.ts: kraiken-lib/abis
## Migration Guide
```typescript
// OLD
import { getSnatchList } from 'kraiken-lib/helpers';
import { KraikenAbi } from 'kraiken-lib';
// NEW
import { getSnatchList } from 'kraiken-lib/snatch';
import { KraikenAbi } from 'kraiken-lib/abis';
```
Fixes #86
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/89
2025-11-20 18:54:53 +01:00
johba
aa1ddfcecd
fill stake e2e
2025-10-11 17:54:49 +00:00
johba
d8119da65b
feat: surface stack versions in app footer
2025-10-11 17:21:45 +00:00
johba
bd475c2271
min stake from backend ( #78 )
...
resolves #74
Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/78
2025-10-11 15:30:08 +02:00
johba
55321eff65
position stream
2025-10-11 12:33:35 +00:00
johba
371a8557b7
improve web-app config
2025-10-11 10:55:49 +00:00
johba
f7ef56f65f
reworked stack
2025-10-07 21:57:32 +00:00
johba
6cbb1781ce
tax rate, version and compose ( #70 )
...
resolves #67
Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/70
2025-10-07 19:26:08 +02:00
johba
8cd64e808f
feat: Add test helper for E2E staking flow ( #66 )
...
Implements window.__testHelpers.fillStakeForm() to enable stable E2E testing
of the staking form without fragile UI selectors.
## Changes
- Add window.__testHelpers interface (dev mode only)
- Implement fillStakeForm() in StakeHolder.vue with input validation
- Add TypeScript declarations in env.d.ts
- Update E2E test to use helper and verify full user journey
- Create INTEGRATION_TEST_STATUS.md documenting test coverage
- Document helper in web-app/README.md
## Test Coverage
Playwright E2E now validates complete flow:
- Mint ETH via cheats page UI
- Swap KRK via cheats page UI
- Stake KRK via stake page UI (helper + click)
- Verify position via GraphQL
Both Playwright and verify-swap.sh tests now work independently.
resolves #62
Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/66
2025-10-07 15:06:38 +02:00
johba
f8927b426e
webapp - ESLint + Prettier with pre-commit hooks ( #54 )
...
resolves #47
Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/54
2025-10-03 16:51:44 +02:00
johba
3ab2d9454a
health checks ( #39 )
...
resolves #35
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/39
2025-10-02 14:37:59 +02:00
openhands
327e2c1308
addresses issue 27
2025-10-01 14:43:55 +02:00
johba
26a8771848
Extract snatch selection into reusable composable ( #30 )
...
## Summary
- add a useSnatchSelection composable that centralises snatch shortfall calculations, position filtering, and RPC memoisation
- refactor StakeHolder.vue to consume the composable instead of reimplementing the flow inline
- introduce Vitest config and first composable tests (useSnatchSelection.spec.ts) to cover empty/partial fills and ownership edge cases
- wire up project tooling updates so the new tests run (jsdom dep, updated package metadata)
## Testing
- cd web-app && npm install
- npm test
resolves #24
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/30
2025-09-30 20:35:47 +02:00
johba
76d84341de
feat: add ABI validation helpers for Ponder ( #29 )
...
resolves https://codeberg.org/johba/harb/issues/23
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/29
2025-09-30 20:02:43 +02:00
root
ea27fcb722
feat: Complete Podman stack setup with working services
...
- Fixed service dependencies (removed bootstrap dependency for runtime services)
- Added landing service for documentation site at root path
- Moved web-app to /app path, landing to / path
- Fixed permission issues with lowercase 'z' SELinux context
- Added kraiken-lib compilation in txn-bot container
- Fixed TypeScript build for kraiken-lib with proper volumes
- Updated entrypoint scripts to handle npm installs properly
- Added locale fixes to Containerfiles
- Changed Caddy port from 80 to 8081 for external access
- Updated Docs link to point to local landing page
All services now working:
- Landing page at /
- Web app at /app/
- GraphQL at /graphql
- Transaction bot at /txn
- Anvil RPC at /rpc/anvil
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 12:12:54 +00:00
johba
4467d41edf
fix web-app
2025-09-24 14:02:28 +02:00
johba
02a057622c
better backend comms
2025-09-24 09:41:28 +02:00
johba
3f137a2757
basic cheat view
2025-09-23 21:16:15 +02:00
johba
ba64e725dc
replaced subgraph with ponder
2025-09-23 19:24:05 +02:00
johba
25fc4a4c4d
more logic to lib
2025-09-23 16:57:49 +02:00
johba
769fa105b8
added web-app and landing
2025-09-23 14:18:04 +02:00