forked from TrueCloudLab/neoneo-go
wallet: support account removal
This commit is contained in:
parent
d742733e26
commit
03d0a6519a
2 changed files with 20 additions and 1 deletions
|
@ -2,6 +2,7 @@ package wallet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
@ -102,6 +103,19 @@ func (w *Wallet) AddAccount(acc *Account) {
|
||||||
w.Accounts = append(w.Accounts, acc)
|
w.Accounts = append(w.Accounts, acc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RemoveAccount removes an Account with the specified addr
|
||||||
|
// from the wallet.
|
||||||
|
func (w *Wallet) RemoveAccount(addr string) error {
|
||||||
|
for i, acc := range w.Accounts {
|
||||||
|
if acc.Address == addr {
|
||||||
|
copy(w.Accounts[i:], w.Accounts[i+1:])
|
||||||
|
w.Accounts = w.Accounts[:len(w.Accounts)-1]
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return errors.New("account wasn't found")
|
||||||
|
}
|
||||||
|
|
||||||
// AddToken adds new token to a wallet.
|
// AddToken adds new token to a wallet.
|
||||||
func (w *Wallet) AddToken(tok *Token) {
|
func (w *Wallet) AddToken(tok *Token) {
|
||||||
w.Extra.Tokens = append(w.Extra.Tokens, tok)
|
w.Extra.Tokens = append(w.Extra.Tokens, tok)
|
||||||
|
|
|
@ -48,7 +48,7 @@ func TestAddAccount(t *testing.T) {
|
||||||
privateKey: nil,
|
privateKey: nil,
|
||||||
publicKey: nil,
|
publicKey: nil,
|
||||||
wif: "",
|
wif: "",
|
||||||
Address: "",
|
Address: "real",
|
||||||
EncryptedWIF: "",
|
EncryptedWIF: "",
|
||||||
Label: "",
|
Label: "",
|
||||||
Contract: nil,
|
Contract: nil,
|
||||||
|
@ -57,6 +57,11 @@ func TestAddAccount(t *testing.T) {
|
||||||
})
|
})
|
||||||
accounts := wallet.Accounts
|
accounts := wallet.Accounts
|
||||||
require.Len(t, accounts, 1)
|
require.Len(t, accounts, 1)
|
||||||
|
|
||||||
|
require.Error(t, wallet.RemoveAccount("abc"))
|
||||||
|
require.Len(t, wallet.Accounts, 1)
|
||||||
|
require.NoError(t, wallet.RemoveAccount("real"))
|
||||||
|
require.Len(t, wallet.Accounts, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPath(t *testing.T) {
|
func TestPath(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue