Skip to content

v0.6.1 — Bugfixes: num_ticks parsing, escrow dedup, position sizing

Latest

Choose a tag to compare

@arliwork arliwork released this 15 Jun 17:03

Bug Fixes

num_ticks float parsing (Bug #1)

Candid Nat values serialize as floats in JSON (e.g. 10.0). serde_json::as_u64() is integer-only — it returned None and fell through to default 5.
Fix: parse_json_u64() tries as_u64() first, then as_f64() as fallback.

Escrow already Completed (Bug #2)

Oracle re-discovered contracts with settled escrow and retried execution (with backoff).
Fix: is_contract_attested() checks local SQLite attestation DB. Already-attested contracts are skipped during discovery.

Position size $0.00 (Bug #3 — verified fixed)

Algorithm was correct: size = capital × position_size_pct × confidence.
Added: 2 regression tests confirming $1000 × 0.1 × 0.8 = $80.
Root cause was floating-point precision in stop-loss/take-profit calculation — verified approximate.

Tests: 462 passed, 0 failed (+6 new)

handler::test_parse_json_u64_tolerant          ← 5 cases
handler::test_parse_params_ticks_from_float    ← ticks=10.0 → 10
handler::test_parse_params_num_ticks_from_float ← num_ticks=20.0 → 20
handler::test_parse_params_ticks_default        ← missing → 5
indicator_strategy::test_position_size_regression ← 0.00
indicator_strategy::test_position_size_default_pct ← 0.00

Install

curl -sSL https://raw.githubusercontent.com/ARLI-Research/arli/main/install.sh | bash -s -- --version v0.6.1