Also, here is some Go code to do exactly what's in the screenshot using the btcd suite packages:
package main
import (
"fmt"
"github.com/conformal/btcutil"
"github.com/conformal/btcwire"
)
func main() {
step1 := "5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ"
fmt.Printf("1 - Wallet import format: %s\n", step1)
step2 := btcutil.Base58Decode(step1)
fmt.Printf("2 - Converting WIF as Base58 string to byte array: %x\n", step2)
step3 := step2[:len(step2)-4]
fmt.Printf("3 - Dropping last 4 checksum bytes from 2: %x\n", step3)
step5 := btcwire.DoubleSha256(step3)
fmt.Printf("4/5 - Double SHA-256 hash of 3: %x\n", step5)
fmt.Printf("6 - First 4 bytes of 5, this is the calculated checksum: %x\n", step5[:4])
step7 := step2[len(step2)-4:]
fmt.Printf("7 - Take the last 4 bytes of 2, this is the original checksum: %x\n", step7)
}
And the result of running that program:
1 - Wallet import format: 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
2 - Converting WIF as Base58 string to byte array: 800c28fca386c7a227600b2fe50b7cae11ec86d3bf1fbe471be89827e19d72aa1d507a5b8d
3 - Dropping last 4 checksum bytes from 2: 800c28fca386c7a227600b2fe50b7cae11ec86d3bf1fbe471be89827e19d72aa1d
4/5 - Double SHA-256 hash of 3: 507a5b8dfed0fc6fe8801743720cedec06aa5c6fca72b07c49964492fb98a714
6 - First 4 bytes of 5, this is the calculated checksum: 507a5b8d
7 - Take the last 4 bytes of 2, this is the original checksum: 507a5b8d
Perfect!!
i never dev in GO. One question i need strings.EqualFold("Go", "go") but i need to differentiate between uppercase and lowercase.
Thanks!