import (
"encoding/json"
- "fmt"
"reflect"
"sort"
"strings"
// FindByID returns an account's Signer record by its ID.
func (m *Manager) FindByID(id string) (*Account, error) {
- fmt.Println("FindByID start...")
m.cacheMu.Lock()
cachedAccount, ok := m.cache.Get(id)
m.cacheMu.Unlock()
}
for i, xpub := range account.XPubs {
if reflect.TypeOf(xpub).String() == "string" {
- // fmt.Println("account xpubs type:", reflect.TypeOf(xpub).String())
if xpb, err := edchainkd.NewXPub(reflect.ValueOf(xpub).String()); err != nil {
panic(err)
} else {
account.XPubs[i] = *xpb
}
- fmt.Println("account xpubs type:", reflect.TypeOf(account.XPubs[i]).String())
}
}
m.cacheMu.Lock()
m.cache.Add(id, account)
- fmt.Println("FindByID m.cache...", m.cache)
m.cacheMu.Unlock()
return account, nil
}
}
func createP2PKH(account *Account, path [][]byte) (*CtrlProgram, error) {
- fmt.Println("createP2PKH account.XPubs is:", account.XPubs)
derivedXPubs := csp.DeriveXPubs(account.XPubs, path)
- fmt.Println("createP2PKH derivedXPubs is:", derivedXPubs)
pubHash := make([]byte, 0)
- fmt.Println("createP2PKH len(derivedXPubs) is:", len(derivedXPubs))
if len(derivedXPubs) == 0 {
return nil, errors.New("no derived XPub.")
}
derivedPK := dxpub.PublicKey()
pubHash = crypto.Ripemd160(derivedPK)
}
- fmt.Println("createP2PKH ...")
address, err := common.NewAddressWitnessPubKeyHash(pubHash, &consensus.ActiveNetParams)
if err != nil {