func ObtainWallets(chainID *big.Int) ([]accounts.Wallet, error) {
	var wallets []accounts.Wallet
	gethWallets, err := obtainGethWallets(chainID)
	if err != nil {
		return nil, err
	}
	wallets = append(wallets, gethWallets...)
	parityWallets, err := obtainParityWallets(chainID)
	if err != nil {
		return nil, err
	}
	wallets = append(wallets, parityWallets...)
	ledgerWallets, err := obtainLedgerWallets(chainID)
	if err != nil {
		return nil, err
	}
	wallets = append(wallets, ledgerWallets...)
	return wallets, nil
}
ObtainWallets obtains all known wallets for a given chain
package cli
import (
	"errors"
	"fmt"
	"math/big"
	"os"
	"os/user"
	"path/filepath"
	"runtime"
	"github.com/ethereum/go-ethereum/accounts"
	"github.com/ethereum/go-ethereum/accounts/keystore"
	"github.com/ethereum/go-ethereum/accounts/usbwallet"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/params"
	homedir "github.com/mitchellh/go-homedir"
	"github.com/spf13/viper"
)