mirror of https://github.com/poanetwork/gecko.git
add getAddresses API method on avm
This commit is contained in:
parent
7c11e91a53
commit
9d4ed06087
|
@ -448,6 +448,40 @@ func (service *Service) CreateAddress(r *http.Request, args *CreateAddressArgs,
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAddressesArgs ...
|
||||||
|
type GetAddressesArgs struct {
|
||||||
|
// User that we're listing the addresses of
|
||||||
|
Username string `json:"username"`
|
||||||
|
Password string `json:"password"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAddressesResponse ...
|
||||||
|
type GetAddressesResponse struct {
|
||||||
|
// Each element is an address controlled by specified account
|
||||||
|
Addresses []string `json:"addresses"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAddresses returns all of the addresses controlled by user [args.Username]
|
||||||
|
func (service *Service) GetAddresses(_ *http.Request, args *GetAddressesArgs, response *GetAddressesResponse) error {
|
||||||
|
db, err := service.vm.ctx.Keystore.GetDatabase(args.Username, args.Password)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("problem retrieving user: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
user := userState{vm: service.vm}
|
||||||
|
addresses, err := user.Addresses(db)
|
||||||
|
if err != nil {
|
||||||
|
response.Addresses = nil
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, address := range addresses {
|
||||||
|
addressBytes := address.Key()
|
||||||
|
response.Addresses = append(response.Addresses, service.vm.Format(addressBytes[:]))
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// ExportKeyArgs are arguments for ExportKey
|
// ExportKeyArgs are arguments for ExportKey
|
||||||
type ExportKeyArgs struct {
|
type ExportKeyArgs struct {
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
|
|
Loading…
Reference in New Issue