add full test suite for wallet.go