mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-03 20:56:42 +00:00
Changes to libkaspawallet to support Kaspaper (#1878)
* Add NewFileFromMnemonics * Export InternalKeychain and ExternalKeychain * Rename NewFileFromMnemonics -> NewFileFromMnemonic * NewFileFromMnemonic: change also argument name * Use libkaspawallet.ExternalKeychain instead of externalKeychain
This commit is contained in:
parent
7292438e4a
commit
70900c571b
@ -3,6 +3,7 @@ package server
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/pb"
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/libkaspawallet"
|
||||
"github.com/kaspanet/kaspad/util"
|
||||
@ -23,7 +24,7 @@ func (s *server) changeAddress() (util.Address, error) {
|
||||
walletAddr := &walletAddress{
|
||||
index: s.keysFile.LastUsedInternalIndex(),
|
||||
cosignerIndex: s.keysFile.CosignerIndex,
|
||||
keyChain: internalKeychain,
|
||||
keyChain: libkaspawallet.InternalKeychain,
|
||||
}
|
||||
path := s.walletAddressPath(walletAddr)
|
||||
return libkaspawallet.Address(s.params, s.keysFile.ExtendedPublicKeys, s.keysFile.MinimumSignatures, path, s.keysFile.ECDSA)
|
||||
@ -42,7 +43,7 @@ func (s *server) ShowAddresses(_ context.Context, request *pb.ShowAddressesReque
|
||||
walletAddr := &walletAddress{
|
||||
index: i,
|
||||
cosignerIndex: s.keysFile.CosignerIndex,
|
||||
keyChain: externalKeychain,
|
||||
keyChain: libkaspawallet.ExternalKeychain,
|
||||
}
|
||||
path := s.walletAddressPath(walletAddr)
|
||||
address, err := libkaspawallet.Address(s.params, s.keysFile.ExtendedPublicKeys, s.keysFile.MinimumSignatures, path, s.keysFile.ECDSA)
|
||||
@ -76,7 +77,7 @@ func (s *server) NewAddress(_ context.Context, request *pb.NewAddressRequest) (*
|
||||
walletAddr := &walletAddress{
|
||||
index: s.keysFile.LastUsedExternalIndex(),
|
||||
cosignerIndex: s.keysFile.CosignerIndex,
|
||||
keyChain: externalKeychain,
|
||||
keyChain: libkaspawallet.ExternalKeychain,
|
||||
}
|
||||
path := s.walletAddressPath(walletAddr)
|
||||
address, err := libkaspawallet.Address(s.params, s.keysFile.ExtendedPublicKeys, s.keysFile.MinimumSignatures, path, s.keysFile.ECDSA)
|
||||
|
@ -1,20 +1,16 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/libkaspawallet"
|
||||
|
||||
"github.com/kaspanet/kaspad/app/appmessage"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
"github.com/pkg/errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
// externalKeychain is the key chain that is used to create receive addresses
|
||||
externalKeychain = 0
|
||||
// internalKeychain is used to create change addresses
|
||||
internalKeychain = 1
|
||||
)
|
||||
|
||||
var keyChains = []uint8{externalKeychain, internalKeychain}
|
||||
var keyChains = []uint8{libkaspawallet.ExternalKeychain, libkaspawallet.InternalKeychain}
|
||||
|
||||
type walletAddressSet map[string]*walletAddress
|
||||
|
||||
@ -180,7 +176,7 @@ func (s *server) updateLastUsedIndexes(addressSet walletAddressSet,
|
||||
continue
|
||||
}
|
||||
|
||||
if walletAddress.keyChain == externalKeychain {
|
||||
if walletAddress.keyChain == libkaspawallet.ExternalKeychain {
|
||||
if walletAddress.index > lastUsedExternalIndex {
|
||||
lastUsedExternalIndex = walletAddress.index
|
||||
}
|
||||
|
@ -6,12 +6,13 @@ import (
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/utils"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
|
||||
"github.com/kaspanet/kaspad/cmd/kaspawallet/utils"
|
||||
|
||||
"github.com/kaspanet/kaspad/domain/dagconfig"
|
||||
"github.com/kaspanet/kaspad/util"
|
||||
"github.com/pkg/errors"
|
||||
@ -89,6 +90,23 @@ func (d *File) toJSON() *keysFileJSON {
|
||||
}
|
||||
}
|
||||
|
||||
// NewFileFromMnemonic generates a new File from the given mnemonic string
|
||||
func NewFileFromMnemonic(params *dagconfig.Params, mnemonic string, password string) (*File, error) {
|
||||
encryptedMnemonics, extendedPublicKeys, err :=
|
||||
encryptedMnemonicExtendedPublicKeyPairs(params, []string{mnemonic}, password, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &File{
|
||||
Version: LastVersion,
|
||||
NumThreads: defaultNumThreads,
|
||||
EncryptedMnemonics: encryptedMnemonics,
|
||||
ExtendedPublicKeys: extendedPublicKeys,
|
||||
MinimumSignatures: 1,
|
||||
ECDSA: false,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (d *File) fromJSON(fileJSON *keysFileJSON) error {
|
||||
d.Version = fileJSON.Version
|
||||
d.NumThreads = fileJSON.NumThreads
|
||||
|
8
cmd/kaspawallet/libkaspawallet/keychains.go
Normal file
8
cmd/kaspawallet/libkaspawallet/keychains.go
Normal file
@ -0,0 +1,8 @@
|
||||
package libkaspawallet
|
||||
|
||||
const (
|
||||
// ExternalKeychain is the key chain that is used to create receive addresses
|
||||
ExternalKeychain = 0
|
||||
// InternalKeychain is used to create change addresses
|
||||
InternalKeychain = 1
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user