From 7767ebc2a3b6e275ce707d0f24eb573d30d048f1 Mon Sep 17 00:00:00 2001 From: olawolu Date: Tue, 26 Sep 2023 16:44:05 +0100 Subject: [PATCH] Make the sdk compatible with a custom keystore. --- README.md | 2 +- client.go | 9 ++++++--- examples/privatekeys/signTransaction.go | 2 +- examples/whoami/whoami.go | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0b8ea7b..7f4e73a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ import ( func main() { // NB: make sure to create and register an API key, first. - client, err := sdk.New("") // your local API key name + client, err := sdk.New("", nil) // your local API key name if err != nil { log.Fatal("failed to create new SDK client:", err) } diff --git a/client.go b/client.go index bf5fa36..6568e24 100644 --- a/client.go +++ b/client.go @@ -11,9 +11,12 @@ import ( "github.com/tkhq/go-sdk/pkg/store" ) -// New returns a new API Client with the given API key name from the default keystore. -func New(keyname string) (*Client, error) { - apiKey, err := store.Default.Load(keyname) +// New returns a new API Client with the given API key name from the given keystore. When nil, "keystore" reverts to store.Default +func New(keyname string, keystore store.Store) (*Client, error) { + if keystore == nil { + keystore = store.Default + } + apiKey, err := keystore.Load(keyname) if err != nil { return nil, errors.Wrap(err, "failed to load API key") } diff --git a/examples/privatekeys/signTransaction.go b/examples/privatekeys/signTransaction.go index 1c567b7..bc58540 100644 --- a/examples/privatekeys/signTransaction.go +++ b/examples/privatekeys/signTransaction.go @@ -15,7 +15,7 @@ import ( func main() { // NB: make sure to create and register an API key, first. - client, err := sdk.New("default") + client, err := sdk.New("default", nil) if err != nil { log.Fatal("failed to create new SDK client:", err) } diff --git a/examples/whoami/whoami.go b/examples/whoami/whoami.go index 51b93f8..100d5b9 100644 --- a/examples/whoami/whoami.go +++ b/examples/whoami/whoami.go @@ -12,7 +12,7 @@ import ( func main() { // NB: make sure to create and register an API key, first. - client, err := sdk.New("") + client, err := sdk.New("", nil) if err != nil { log.Fatal("failed to create new SDK client:", err) }