Files
ark/pkg/client-sdk/store/inmemory/store.go
Pietralberto Mazza 89df461623 Update client sdk (#207)
* Add bitcoin networks

* Refactor client

* Refactor explorer

* Refactor store

* Refactor wallet

* Refactor sdk client

* Refactor wasm & Update examples

* Move common util funcs to internal/utils

* Move to constants for service types

* Add unit tests

* Parallelize tests

* Lint

* Add job to gh action

* go mod tidy

* Fixes

* Fixes

* Fix compose file

* Fixes

* Fixes after review:
* Drop factory pattern
* Drop password from ark client methods
* Make singlekey wallet manage store and wallet store instead of defining WalletStore as extension of Store
* Move constants to arksdk module
* Drop config and expect directory store and wallet as ark client factory args

* Fix

* Add constants for bitcoin/liquid explorer

* Fix test

* Fix wasm

* Rename client.Client to client.ASPClient

* Rename store.Store to store.ConfigStore

* Rename wallet.Wallet to wallet.WalletService

* Renamings

* Lint

* Fixes

* Move everything to internal/utils & move ComputeVtxoTaprootScript to common

* Go mod tidy
2024-07-30 16:08:23 +02:00

56 lines
834 B
Go

package inmemorystore
import (
"context"
"sync"
"github.com/ark-network/ark-sdk/store"
)
type Store struct {
data *store.StoreData
lock *sync.RWMutex
}
func NewConfigStore() (store.ConfigStore, error) {
lock := &sync.RWMutex{}
return &Store{lock: lock}, nil
}
func (s *Store) GetType() string {
return store.InMemoryStore
}
func (s *Store) GetDatadir() string {
return ""
}
func (s *Store) AddData(
_ context.Context, data store.StoreData,
) error {
s.lock.Lock()
defer s.lock.Unlock()
s.data = &data
return nil
}
func (s *Store) GetData(_ context.Context) (*store.StoreData, error) {
s.lock.RLock()
defer s.lock.RUnlock()
if s.data == nil {
return nil, nil
}
return s.data, nil
}
func (s *Store) CleanData(_ context.Context) error {
s.lock.Lock()
defer s.lock.Unlock()
s.data = nil
return nil
}