mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-07-04 11:52:31 +00:00
Export DefaultPath + Add logging to kaspawallet daemon (#1730)
* Export DefaultPath + Add logging to kaspawallet daemon * Export purpose and CoinType instead of defaultPath * Move TODO to correct place
This commit is contained in:
parent
6613faee2d
commit
16ba2bd312
@ -1,6 +1,12 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/kaspanet/kaspad/util"
|
||||
|
||||
"github.com/kaspanet/kaspad/infrastructure/logger"
|
||||
"github.com/kaspanet/kaspad/util/panics"
|
||||
)
|
||||
@ -9,4 +15,33 @@ var (
|
||||
backendLog = logger.NewBackend()
|
||||
log = backendLog.Logger("KSWD")
|
||||
spawn = panics.GoroutineWrapperFunc(log)
|
||||
|
||||
defaultAppDir = util.AppDir("kaspawallet", false)
|
||||
defaultLogFile = filepath.Join(defaultAppDir, "daemon.log")
|
||||
defaultErrLogFile = filepath.Join(defaultAppDir, "daemon_err.log")
|
||||
)
|
||||
|
||||
func initLog(logFile, errLogFile string) {
|
||||
log.SetLevel(logger.LevelDebug)
|
||||
err := backendLog.AddLogFile(logFile, logger.LevelTrace)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error adding log file %s as log rotator for level %s: %s", logFile, logger.LevelTrace, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
err = backendLog.AddLogFile(errLogFile, logger.LevelWarn)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error adding log file %s as log rotator for level %s: %s", errLogFile, logger.LevelWarn, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
err = backendLog.AddLogWriter(os.Stdout, logger.LevelInfo)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error adding stdout to the loggerfor level %s: %s", logger.LevelWarn, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
err = backendLog.Run()
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error starting the logger: %s ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,11 @@ package server
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/pb"
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/keys"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
@ -10,10 +15,6 @@ import (
|
||||
"github.com/kaspanet/kaspad/infrastructure/os/signal"
|
||||
"github.com/kaspanet/kaspad/util/panics"
|
||||
"github.com/pkg/errors"
|
||||
"net"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
@ -33,6 +34,8 @@ type server struct {
|
||||
|
||||
// Start starts the kaspawalletd server
|
||||
func Start(params *dagconfig.Params, listen, rpcServer string, keysFilePath string) error {
|
||||
initLog(defaultLogFile, defaultErrLogFile)
|
||||
|
||||
defer panics.HandlePanic(log, "MAIN", nil)
|
||||
interrupt := signal.InterruptListener()
|
||||
|
||||
@ -40,6 +43,7 @@ func Start(params *dagconfig.Params, listen, rpcServer string, keysFilePath stri
|
||||
if err != nil {
|
||||
return (errors.Wrapf(err, "Error listening to tcp at %s", listen))
|
||||
}
|
||||
log.Infof("Listening on %s", listen)
|
||||
|
||||
rpcClient, err := connectToRPC(params, rpcServer)
|
||||
if err != nil {
|
||||
|
@ -16,23 +16,23 @@ func CreateMnemonic() (string, error) {
|
||||
return bip39.NewMnemonic(entropy)
|
||||
}
|
||||
|
||||
// Purpose and CoinType constants
|
||||
const (
|
||||
SingleSignerPurpose = 44
|
||||
// Note: this is not entirely compatible to BIP 45 since
|
||||
// BIP 45 doesn't have a coin type in its derivation path.
|
||||
MultiSigPurpose = 45
|
||||
// TODO: Register the coin type in https://github.com/satoshilabs/slips/blob/master/slip-0044.md
|
||||
CoinType = 111111
|
||||
)
|
||||
|
||||
func defaultPath(isMultisig bool) string {
|
||||
const (
|
||||
singleSignerPurpose = 44
|
||||
|
||||
// Note: this is not entirely compatible to BIP 45 since
|
||||
// BIP 45 doesn't have a coin type in its derivation path.
|
||||
multiSigPurpose = 45
|
||||
)
|
||||
|
||||
purpose := singleSignerPurpose
|
||||
purpose := SingleSignerPurpose
|
||||
if isMultisig {
|
||||
purpose = multiSigPurpose
|
||||
purpose = MultiSigPurpose
|
||||
}
|
||||
|
||||
// TODO: Register the coin type in https://github.com/satoshilabs/slips/blob/master/slip-0044.md
|
||||
const coinType = 111111
|
||||
return fmt.Sprintf("m/%d'/%d'/0'", purpose, coinType)
|
||||
return fmt.Sprintf("m/%d'/%d'/0'", purpose, CoinType)
|
||||
}
|
||||
|
||||
// MasterPublicKeyFromMnemonic returns the master public key with the correct derivation for the given mnemonic.
|
||||
|
@ -1,14 +1,15 @@
|
||||
package libkaspawallet
|
||||
|
||||
import (
|
||||
"math"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/kaspanet/go-secp256k1"
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/libkaspawallet/bip32"
|
||||
"github.com/kaspanet/kaspad/domain/dagconfig"
|
||||
"github.com/kaspanet/kaspad/util"
|
||||
"github.com/pkg/errors"
|
||||
"math"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateKeyPair generates a private-public key pair
|
||||
|
@ -3,13 +3,15 @@ package utils
|
||||
import (
|
||||
"bufio"
|
||||
"strings"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// ReadLine reads one line from the given reader with trimmed white space.
|
||||
func ReadLine(reader *bufio.Reader) (string, error) {
|
||||
line, err := reader.ReadBytes('\n')
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", errors.WithStack(err)
|
||||
}
|
||||
|
||||
return strings.TrimSpace(string(line)), nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user