mirror of
https://github.com/aljazceru/ark.git
synced 2025-12-17 12:14:21 +01:00
* 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
61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
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()
|
|
}
|