mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-07 06:36:46 +00:00
Use one of the From addresses as a change address (#2164)
* Use one of the From addresses as a change address * Use change address from fromAddress only if useExisting is set to true * Change FromAddresses description
This commit is contained in:
parent
7d44275eb1
commit
ec51c6926a
@ -10,9 +10,13 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *server) changeAddress(useFirst bool) (util.Address, *walletAddress, error) {
|
func (s *server) changeAddress(useExisting bool, fromAddresses []*walletAddress) (util.Address, *walletAddress, error) {
|
||||||
|
var walletAddr *walletAddress
|
||||||
|
if len(fromAddresses) != 0 && useExisting {
|
||||||
|
walletAddr = fromAddresses[0]
|
||||||
|
} else {
|
||||||
internalIndex := uint32(0)
|
internalIndex := uint32(0)
|
||||||
if !useFirst {
|
if !useExisting {
|
||||||
err := s.keysFile.SetLastUsedInternalIndex(s.keysFile.LastUsedInternalIndex() + 1)
|
err := s.keysFile.SetLastUsedInternalIndex(s.keysFile.LastUsedInternalIndex() + 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
@ -26,11 +30,13 @@ func (s *server) changeAddress(useFirst bool) (util.Address, *walletAddress, err
|
|||||||
internalIndex = s.keysFile.LastUsedInternalIndex()
|
internalIndex = s.keysFile.LastUsedInternalIndex()
|
||||||
}
|
}
|
||||||
|
|
||||||
walletAddr := &walletAddress{
|
walletAddr = &walletAddress{
|
||||||
index: internalIndex,
|
index: internalIndex,
|
||||||
cosignerIndex: s.keysFile.CosignerIndex,
|
cosignerIndex: s.keysFile.CosignerIndex,
|
||||||
keyChain: libkaspawallet.InternalKeychain,
|
keyChain: libkaspawallet.InternalKeychain,
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
path := s.walletAddressPath(walletAddr)
|
path := s.walletAddressPath(walletAddr)
|
||||||
address, err := libkaspawallet.Address(s.params, s.keysFile.ExtendedPublicKeys, s.keysFile.MinimumSignatures, path, s.keysFile.ECDSA)
|
address, err := libkaspawallet.Address(s.params, s.keysFile.ExtendedPublicKeys, s.keysFile.MinimumSignatures, path, s.keysFile.ECDSA)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -61,7 +61,7 @@ func (s *server) createUnsignedTransactions(address string, amount uint64, fromA
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
changeAddress, changeWalletAddress, err := s.changeAddress(useExistingChangeAddress)
|
changeAddress, changeWalletAddress, err := s.changeAddress(useExistingChangeAddress, fromAddresses)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user