mirror of
https://github.com/aljazceru/ark.git
synced 2025-12-18 12:44:19 +01:00
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
This commit is contained in:
committed by
GitHub
parent
e45bff3c70
commit
89df461623
60
pkg/client-sdk/client/client.go
Normal file
60
pkg/client-sdk/client/client.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/ark-network/ark-sdk/explorer"
|
||||
arkv1 "github.com/ark-network/ark/api-spec/protobuf/gen/ark/v1"
|
||||
)
|
||||
|
||||
const (
|
||||
GrpcClient = "grpc"
|
||||
RestClient = "rest"
|
||||
)
|
||||
|
||||
type RoundEventChannel struct {
|
||||
Event *arkv1.GetEventStreamResponse
|
||||
Err error
|
||||
}
|
||||
|
||||
type Vtxo struct {
|
||||
Amount uint64
|
||||
Txid string
|
||||
VOut uint32
|
||||
RoundTxid string
|
||||
ExpiresAt *time.Time
|
||||
}
|
||||
|
||||
type ASPClient interface {
|
||||
GetInfo(ctx context.Context) (*arkv1.GetInfoResponse, error)
|
||||
ListVtxos(ctx context.Context, addr string) (*arkv1.ListVtxosResponse, error)
|
||||
GetSpendableVtxos(
|
||||
ctx context.Context, addr string, explorerSvc explorer.Explorer,
|
||||
) ([]*Vtxo, error)
|
||||
GetRound(ctx context.Context, txID string) (*arkv1.GetRoundResponse, error)
|
||||
GetRoundByID(ctx context.Context, roundID string) (*arkv1.GetRoundByIdResponse, error)
|
||||
GetRedeemBranches(
|
||||
ctx context.Context, vtxos []*Vtxo, explorerSvc explorer.Explorer,
|
||||
) (map[string]*RedeemBranch, error)
|
||||
GetOffchainBalance(
|
||||
ctx context.Context, addr string, explorerSvc explorer.Explorer,
|
||||
) (uint64, map[int64]uint64, error)
|
||||
Onboard(
|
||||
ctx context.Context, req *arkv1.OnboardRequest,
|
||||
) (*arkv1.OnboardResponse, error)
|
||||
RegisterPayment(
|
||||
ctx context.Context, req *arkv1.RegisterPaymentRequest,
|
||||
) (*arkv1.RegisterPaymentResponse, error)
|
||||
ClaimPayment(
|
||||
ctx context.Context, req *arkv1.ClaimPaymentRequest,
|
||||
) (*arkv1.ClaimPaymentResponse, error)
|
||||
GetEventStream(
|
||||
ctx context.Context, paymentID string, req *arkv1.GetEventStreamRequest,
|
||||
) (<-chan RoundEventChannel, error)
|
||||
Ping(ctx context.Context, req *arkv1.PingRequest) (*arkv1.PingResponse, error)
|
||||
FinalizePayment(
|
||||
ctx context.Context, req *arkv1.FinalizePaymentRequest,
|
||||
) (*arkv1.FinalizePaymentResponse, error)
|
||||
Close()
|
||||
}
|
||||
Reference in New Issue
Block a user