Files
ark/asp/internal/infrastructure/ocean-wallet/account.go
2023-12-20 16:55:00 +01:00

31 lines
773 B
Go

package oceanwallet
import (
"context"
pb "github.com/ark-network/ark/api-spec/protobuf/gen/ocean/v1"
"github.com/vulpemventures/go-elements/address"
)
func (s *service) DeriveAddresses(
ctx context.Context, numOfAddresses int,
) ([]string, error) {
res, err := s.accountClient.DeriveAddresses(ctx, &pb.DeriveAddressesRequest{
AccountName: accountLabel,
NumOfAddresses: uint64(numOfAddresses),
})
if err != nil {
return nil, err
}
addresses := make([]string, 0, numOfAddresses)
for _, addr := range res.GetAddresses() {
if isConf, _ := address.IsConfidential(addr); !isConf {
addresses = append(addresses, addr)
continue
}
info, _ := address.FromConfidential(addr)
addresses = append(addresses, info.Address)
}
return addresses, nil
}