mirror of
https://github.com/aljazceru/ark.git
synced 2025-12-17 12:14:21 +01:00
Make the round participants sign the vtxo tree (#271)
* [proto] add APIs to send and receive musig2 signing data * [common] add serialization functions for nonces and signatures * [application] implements tree signing * fix: remove old debug logs * [proto] cleaning * [common] fix musig2.go * [application] fixes and logs * [interface] fix: stop forwarding 2 times the events * [client] add musig2 support + sign the tree when joining a round * [interface] add new APIs into permissions.go * [application][proto] rework PingResponse (return all events type) * [common] split SetKeys into 2 distinct methods * [client] fixes according to musig2.go changes * [sdk] support tree signing + new PingResponse * [sdk] fixes * [application] revert event channel type * [application] use domain.RoundEvent as lastEvent type * [application] remove IsCovenantLess * comments * [application] revert roundAborted changes * [interface] remove bitcointree dependencie
This commit is contained in:
@@ -4,7 +4,9 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/ark-network/ark/common/bitcointree"
|
||||
"github.com/ark-network/ark/common/tree"
|
||||
"github.com/decred/dcrd/dcrec/secp256k1/v4"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -25,7 +27,7 @@ type ASPClient interface {
|
||||
ctx context.Context, tx, userPubkey string, congestionTree tree.CongestionTree,
|
||||
) error
|
||||
RegisterPayment(
|
||||
ctx context.Context, inputs []VtxoKey,
|
||||
ctx context.Context, inputs []VtxoKey, ephemeralPublicKey string,
|
||||
) (string, error)
|
||||
ClaimPayment(
|
||||
ctx context.Context, paymentID string, outputs []Output,
|
||||
@@ -33,7 +35,7 @@ type ASPClient interface {
|
||||
GetEventStream(
|
||||
ctx context.Context, paymentID string,
|
||||
) (<-chan RoundEventChannel, error)
|
||||
Ping(ctx context.Context, paymentID string) (*RoundFinalizationEvent, error)
|
||||
Ping(ctx context.Context, paymentID string) (RoundEvent, error)
|
||||
FinalizePayment(
|
||||
ctx context.Context, signedForfeitTxs []string,
|
||||
) error
|
||||
@@ -43,6 +45,12 @@ type ASPClient interface {
|
||||
CompletePayment(
|
||||
ctx context.Context, signedRedeemTx string, signedUnconditionalForfeitTxs []string,
|
||||
) error
|
||||
SendTreeNonces(
|
||||
ctx context.Context, roundID, cosignerPubkey string, nonces bitcointree.TreeNonces,
|
||||
) error
|
||||
SendTreeSignatures(
|
||||
ctx context.Context, roundID, cosignerPubkey string, signatures bitcointree.TreePartialSigs,
|
||||
) error
|
||||
Close()
|
||||
}
|
||||
|
||||
@@ -139,3 +147,18 @@ type RoundFailedEvent struct {
|
||||
}
|
||||
|
||||
func (e RoundFailedEvent) isRoundEvent() {}
|
||||
|
||||
type RoundSigningStartedEvent struct {
|
||||
ID string
|
||||
UnsignedTree tree.CongestionTree
|
||||
CosignersPublicKeys []*secp256k1.PublicKey
|
||||
}
|
||||
|
||||
func (e RoundSigningStartedEvent) isRoundEvent() {}
|
||||
|
||||
type RoundSigningNoncesGeneratedEvent struct {
|
||||
ID string
|
||||
Nonces bitcointree.TreeNonces
|
||||
}
|
||||
|
||||
func (e RoundSigningNoncesGeneratedEvent) isRoundEvent() {}
|
||||
|
||||
Reference in New Issue
Block a user