'How to fix a "hex string of odd length" error

I'm trying to write a script in Go to interact with a smart contract on Binance Smart Chain using an RPC and the github.com/ethereum/go-ethereum package. However, I keep getting "panic: hex string of odd length" when trying to call a method involving a bind.TransactOpts struct. Here's the relevant code:

secret_key := "<my_secret_key>"
sk, _ := crypto.HexToECDSA(secret_key)

wallet_addr := crypto.PubkeyToAddress(sk.PublicKey)

auth, _ := bind.NewKeyedTransactorWithChainID(sk, big.NewInt(56))

...

tx := &bind.TransactOpts{
        From:      wallet_addr,
        Nonce:     nil,
        Signer:    auth.Signer,
        Value:     min_bet,
        GasPrice:  nil,
        GasFeeCap: nil,
        GasTipCap: nil,
    }
    
attempt, err := instance.BetBull(tx, epoch)
if err != nil {
        panic(err)
    }
fmt.Println(attempt)

The problem seems to me to be with the Signer field of tx. When I run fmt.Println(auth.Signer) the output is 0x4341680, which has 9 characters. I'm new to coding and just doing this for fun, so it's likely that I'm missing something obvious, but I can't figure out how to fix this. Any help would be appreciated. Thanks.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source