mirror of https://github.com/poanetwork/gecko.git
Changed sk indexing, bumped version
This commit is contained in:
parent
56deaf7c9d
commit
69065c50b5
|
@ -28,7 +28,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
dbVersion = "v0.2.0"
|
||||
dbVersion = "v0.3.0"
|
||||
defaultDbDir = "~/.gecko/db"
|
||||
)
|
||||
|
||||
|
|
|
@ -68,8 +68,8 @@ var (
|
|||
VersionPrefix = "avalanche/"
|
||||
VersionSeparator = "."
|
||||
MajorVersion = 0
|
||||
MinorVersion = 2
|
||||
PatchVersion = 1
|
||||
MinorVersion = 3
|
||||
PatchVersion = 0
|
||||
ClientVersion = fmt.Sprintf("%s%d%s%d%s%d",
|
||||
VersionPrefix,
|
||||
MajorVersion,
|
||||
|
|
|
@ -16,10 +16,11 @@ import (
|
|||
"github.com/ava-labs/gecko/utils/formatting"
|
||||
"github.com/ava-labs/gecko/utils/hashing"
|
||||
"github.com/ava-labs/gecko/utils/json"
|
||||
safemath "github.com/ava-labs/gecko/utils/math"
|
||||
"github.com/ava-labs/gecko/vms/components/ava"
|
||||
"github.com/ava-labs/gecko/vms/components/verify"
|
||||
"github.com/ava-labs/gecko/vms/secp256k1fx"
|
||||
|
||||
safemath "github.com/ava-labs/gecko/utils/math"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -511,7 +512,7 @@ func (service *Service) CreateAddress(r *http.Request, args *CreateAddressArgs,
|
|||
}
|
||||
|
||||
addresses, _ := user.Addresses(db)
|
||||
addresses = append(addresses, ids.NewID(hashing.ComputeHash256Array(sk.PublicKey().Address().Bytes())))
|
||||
addresses = append(addresses, sk.PublicKey().Address())
|
||||
|
||||
if err := user.SetAddresses(db, addresses); err != nil {
|
||||
return fmt.Errorf("problem saving address: %w", err)
|
||||
|
@ -541,10 +542,11 @@ func (service *Service) ListAddresses(_ *http.Request, args *ListAddressesArgs,
|
|||
return fmt.Errorf("problem retrieving user: %w", err)
|
||||
}
|
||||
|
||||
response.Addresses = []string{}
|
||||
|
||||
user := userState{vm: service.vm}
|
||||
addresses, err := user.Addresses(db)
|
||||
if err != nil {
|
||||
response.Addresses = nil
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -575,6 +577,10 @@ func (service *Service) ExportKey(r *http.Request, args *ExportKeyArgs, reply *E
|
|||
if err != nil {
|
||||
return fmt.Errorf("problem parsing address: %w", err)
|
||||
}
|
||||
addr, err := ids.ToShortID(address)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem parsing address: %w", err)
|
||||
}
|
||||
|
||||
db, err := service.vm.ctx.Keystore.GetDatabase(args.Username, args.Password)
|
||||
if err != nil {
|
||||
|
@ -583,7 +589,7 @@ func (service *Service) ExportKey(r *http.Request, args *ExportKeyArgs, reply *E
|
|||
|
||||
user := userState{vm: service.vm}
|
||||
|
||||
sk, err := user.Key(db, ids.NewID(hashing.ComputeHash256Array(address)))
|
||||
sk, err := user.Key(db, addr)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem retrieving private key: %w", err)
|
||||
}
|
||||
|
@ -628,7 +634,7 @@ func (service *Service) ImportKey(r *http.Request, args *ImportKeyArgs, reply *I
|
|||
}
|
||||
|
||||
addresses, _ := user.Addresses(db)
|
||||
addresses = append(addresses, ids.NewID(hashing.ComputeHash256Array(sk.PublicKey().Address().Bytes())))
|
||||
addresses = append(addresses, sk.PublicKey().Address())
|
||||
|
||||
if err := user.SetAddresses(db, addresses); err != nil {
|
||||
return fmt.Errorf("problem saving addresses: %w", err)
|
||||
|
@ -687,7 +693,9 @@ func (service *Service) Send(r *http.Request, args *SendArgs, reply *SendReply)
|
|||
addresses, _ := user.Addresses(db)
|
||||
|
||||
addrs := ids.Set{}
|
||||
addrs.Add(addresses...)
|
||||
for _, addr := range addresses {
|
||||
addrs.Add(ids.NewID(hashing.ComputeHash256Array(addr.Bytes())))
|
||||
}
|
||||
utxos, err := service.vm.GetUTXOs(addrs)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem retrieving user's UTXOs: %w", err)
|
||||
|
@ -956,6 +964,10 @@ func (service *Service) SignMintTx(r *http.Request, args *SignMintTxArgs, reply
|
|||
if err != nil {
|
||||
return fmt.Errorf("problem parsing address '%s': %w", args.Minter, err)
|
||||
}
|
||||
addr, err := ids.ToShortID(minter)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem parsing address '%s': %w", args.Minter, err)
|
||||
}
|
||||
|
||||
db, err := service.vm.ctx.Keystore.GetDatabase(args.Username, args.Password)
|
||||
if err != nil {
|
||||
|
@ -964,7 +976,6 @@ func (service *Service) SignMintTx(r *http.Request, args *SignMintTxArgs, reply
|
|||
|
||||
user := userState{vm: service.vm}
|
||||
|
||||
addr := ids.NewID(hashing.ComputeHash256Array(minter))
|
||||
sk, err := user.Key(db, addr)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem retriving private key: %w", err)
|
||||
|
@ -1094,7 +1105,10 @@ func (service *Service) ImportAVA(_ *http.Request, args *ImportAVAArgs, reply *I
|
|||
addresses, _ := user.Addresses(db)
|
||||
|
||||
addrs := ids.Set{}
|
||||
addrs.Add(addresses...)
|
||||
for _, addr := range addresses {
|
||||
addrs.Add(ids.NewID(hashing.ComputeHash256Array(addr.Bytes())))
|
||||
}
|
||||
|
||||
utxos, err := service.vm.GetAtomicUTXOs(addrs)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem retrieving user's atomic UTXOs: %w", err)
|
||||
|
@ -1238,7 +1252,10 @@ func (service *Service) ExportAVA(_ *http.Request, args *ExportAVAArgs, reply *E
|
|||
addresses, _ := user.Addresses(db)
|
||||
|
||||
addrs := ids.Set{}
|
||||
addrs.Add(addresses...)
|
||||
for _, addr := range addresses {
|
||||
addrs.Add(ids.NewID(hashing.ComputeHash256Array(addr.Bytes())))
|
||||
}
|
||||
|
||||
utxos, err := service.vm.GetUTXOs(addrs)
|
||||
if err != nil {
|
||||
return fmt.Errorf("problem retrieving user's UTXOs: %w", err)
|
||||
|
|
|
@ -7,14 +7,13 @@ import (
|
|||
"github.com/ava-labs/gecko/database"
|
||||
"github.com/ava-labs/gecko/ids"
|
||||
"github.com/ava-labs/gecko/utils/crypto"
|
||||
"github.com/ava-labs/gecko/utils/hashing"
|
||||
)
|
||||
|
||||
var addresses = ids.Empty
|
||||
|
||||
type userState struct{ vm *VM }
|
||||
|
||||
func (s *userState) SetAddresses(db database.Database, addrs []ids.ID) error {
|
||||
func (s *userState) SetAddresses(db database.Database, addrs []ids.ShortID) error {
|
||||
bytes, err := s.vm.codec.Marshal(addrs)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -22,12 +21,12 @@ func (s *userState) SetAddresses(db database.Database, addrs []ids.ID) error {
|
|||
return db.Put(addresses.Bytes(), bytes)
|
||||
}
|
||||
|
||||
func (s *userState) Addresses(db database.Database) ([]ids.ID, error) {
|
||||
func (s *userState) Addresses(db database.Database) ([]ids.ShortID, error) {
|
||||
bytes, err := db.Get(addresses.Bytes())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
addresses := []ids.ID{}
|
||||
addresses := []ids.ShortID{}
|
||||
if err := s.vm.codec.Unmarshal(bytes, &addresses); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -35,10 +34,10 @@ func (s *userState) Addresses(db database.Database) ([]ids.ID, error) {
|
|||
}
|
||||
|
||||
func (s *userState) SetKey(db database.Database, sk *crypto.PrivateKeySECP256K1R) error {
|
||||
return db.Put(hashing.ComputeHash256(sk.PublicKey().Address().Bytes()), sk.Bytes())
|
||||
return db.Put(sk.PublicKey().Address().Bytes(), sk.Bytes())
|
||||
}
|
||||
|
||||
func (s *userState) Key(db database.Database, address ids.ID) (*crypto.PrivateKeySECP256K1R, error) {
|
||||
func (s *userState) Key(db database.Database, address ids.ShortID) (*crypto.PrivateKeySECP256K1R, error) {
|
||||
factory := crypto.FactorySECP256K1R{}
|
||||
|
||||
bytes, err := db.Get(address.Bytes())
|
||||
|
|
Loading…
Reference in New Issue