fix: retry bootstrap swap with recenter (#134, #13, #12) (#166)

This commit is contained in:
johba 2026-02-20 09:19:13 +01:00
parent d9b5131101
commit 79c9c8571a

View file

@ -125,10 +125,38 @@ seed_application_state() {
bootstrap_log "Approving router" bootstrap_log "Approving router"
cast send --rpc-url "$ANVIL_RPC" --private-key "$DEPLOYER_PK" \ cast send --rpc-url "$ANVIL_RPC" --private-key "$DEPLOYER_PK" \
"$WETH" "approve(address,uint256)" "$SWAP_ROUTER" "$MAX_UINT" >>"$LOG_FILE" 2>&1 "$WETH" "approve(address,uint256)" "$SWAP_ROUTER" "$MAX_UINT" >>"$LOG_FILE" 2>&1
bootstrap_log "Executing initial KRK swap"
cast send --legacy --gas-limit 300000 --rpc-url "$ANVIL_RPC" --private-key "$DEPLOYER_PK" \ # Swap with retry — recenter may not position liquidity at the right tick on first call
"$SWAP_ROUTER" "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))" \ local swap_success=false
"($WETH,$KRAIKEN,10000,$DEPLOYER_ADDR,1000000000000000000,0,4295128740)" >>"$LOG_FILE" 2>&1 for attempt in 1 2 3; do
bootstrap_log "KRK swap attempt $attempt/3"
local balance_before balance_after
balance_before=$(cast call --rpc-url "$ANVIL_RPC" "$KRAIKEN" "balanceOf(address)(uint256)" "$DEPLOYER_ADDR" 2>/dev/null || echo "0")
cast send --legacy --gas-limit 300000 --rpc-url "$ANVIL_RPC" --private-key "$DEPLOYER_PK" \
"$SWAP_ROUTER" "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))" \
"($WETH,$KRAIKEN,10000,$DEPLOYER_ADDR,1000000000000000000,0,4295128740)" >>"$LOG_FILE" 2>&1 || true
balance_after=$(cast call --rpc-url "$ANVIL_RPC" "$KRAIKEN" "balanceOf(address)(uint256)" "$DEPLOYER_ADDR" 2>/dev/null || echo "0")
if [[ "$balance_after" != "$balance_before" && "$balance_after" != "0" ]]; then
bootstrap_log "Swap successful — got KRK tokens (balance: $balance_after)"
swap_success=true
break
fi
bootstrap_log "Swap returned 0 KRK — recentering and retrying"
# Mine a few blocks to advance time, then recenter
cast rpc --rpc-url "$ANVIL_RPC" evm_mine >>"$LOG_FILE" 2>&1 || true
cast rpc --rpc-url "$ANVIL_RPC" evm_mine >>"$LOG_FILE" 2>&1 || true
local recenter_pk="${TXNBOT_PRIVATE_KEY:-$DEPLOYER_PK}"
cast send --rpc-url "$ANVIL_RPC" --private-key "$recenter_pk" \
"$LIQUIDITY_MANAGER" "recenter()" >>"$LOG_FILE" 2>&1 || true
done
if [[ "$swap_success" != "true" ]]; then
bootstrap_log "WARNING: All swap attempts returned 0 KRK. Pool may have no liquidity at current tick."
fi
} }
fund_txn_bot_wallet() { fund_txn_bot_wallet() {