Skip to content

Commit 578fc89

Browse files
committed
Merge branch 'feat/arc-broadcast' into fix/feemodel
2 parents 2ca2c8c + a342376 commit 578fc89

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

transaction/broadcaster/arc.go

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,19 @@ import (
1717
type ArcStatus string
1818

1919
const (
20-
REJECTED ArcStatus = "REJECTED"
21-
QUEUED ArcStatus = "QUEUED"
22-
RECEIVED ArcStatus = "RECEIVED"
23-
STORED ArcStatus = "STORED"
24-
ANNOUNCED_TO_NETWORK ArcStatus = "ANNOUNCED_TO_NETWORK"
25-
REQUESTED_BY_NETWORK ArcStatus = "REQUESTED_BY_NETWORK"
26-
SENT_TO_NETWORK ArcStatus = "SENT_TO_NETWORK"
27-
ACCEPTED_BY_NETWORK ArcStatus = "ACCEPTED_BY_NETWORK"
28-
SEEN_ON_NETWORK ArcStatus = "SEEN_ON_NETWORK"
20+
REJECTED ArcStatus = "REJECTED"
21+
QUEUED ArcStatus = "QUEUED"
22+
RECEIVED ArcStatus = "RECEIVED"
23+
STORED ArcStatus = "STORED"
24+
ANNOUNCED_TO_NETWORK ArcStatus = "ANNOUNCED_TO_NETWORK"
25+
REQUESTED_BY_NETWORK ArcStatus = "REQUESTED_BY_NETWORK"
26+
SENT_TO_NETWORK ArcStatus = "SENT_TO_NETWORK"
27+
ACCEPTED_BY_NETWORK ArcStatus = "ACCEPTED_BY_NETWORK"
28+
SEEN_ON_NETWORK ArcStatus = "SEEN_ON_NETWORK"
29+
MINED ArcStatus = "MINED"
30+
CONFIRMED ArcStatus = "CONFIRMED"
31+
DOUBLE_SPEND_ATTEMPTED ArcStatus = "DOUBLE_SPEND_ATTEMPTED"
32+
SEEN_IN_ORPHAN_MEMPOOL ArcStatus = "SEEN_IN_ORPHAN_MEMPOOL"
2933
)
3034

3135
type Arc struct {
@@ -64,7 +68,7 @@ func (a *Arc) Broadcast(t *transaction.Transaction) (*transaction.BroadcastSucce
6468
return a.BroadcastCtx(context.Background(), t)
6569
}
6670

67-
func (a *Arc) BroadcastCtx(ctx context.Context, t *transaction.Transaction) (*transaction.BroadcastSuccess, *transaction.BroadcastFailure) {
71+
func (a *Arc) ArcBroadcast(ctx context.Context, t *transaction.Transaction) (*ArcResponse, error) {
6872
var buf *bytes.Buffer
6973
for _, input := range t.Inputs {
7074
if input.SourceTxOutput() == nil {
@@ -74,10 +78,7 @@ func (a *Arc) BroadcastCtx(ctx context.Context, t *transaction.Transaction) (*tr
7478
}
7579
if buf == nil {
7680
if ef, err := t.EF(); err != nil {
77-
return nil, &transaction.BroadcastFailure{
78-
Code: "500",
79-
Description: err.Error(),
80-
}
81+
return nil, err
8182
} else {
8283
buf = bytes.NewBuffer(ef)
8384
}
@@ -90,10 +91,7 @@ func (a *Arc) BroadcastCtx(ctx context.Context, t *transaction.Transaction) (*tr
9091
buf,
9192
)
9293
if err != nil {
93-
return nil, &transaction.BroadcastFailure{
94-
Code: "500",
95-
Description: err.Error(),
96-
}
94+
return nil, err
9795
}
9896

9997
req.Header.Set("Content-Type", "application/octet-stream")
@@ -140,25 +138,28 @@ func (a *Arc) BroadcastCtx(ctx context.Context, t *transaction.Transaction) (*tr
140138
}
141139
resp, err := a.Client.Do(req)
142140
if err != nil {
143-
return nil, &transaction.BroadcastFailure{
144-
Code: "500",
145-
Description: err.Error(),
146-
}
141+
return nil, err
147142
}
148143
defer resp.Body.Close()
149144
msg, err := io.ReadAll(resp.Body)
150145
if err != nil {
151-
return nil, &transaction.BroadcastFailure{
152-
Code: "500",
153-
Description: err.Error(),
154-
}
146+
return nil, err
155147
}
156148

157149
response := &ArcResponse{}
158150
if a.Verbose {
159151
log.Println("msg", string(msg))
160152
}
161153
err = json.Unmarshal(msg, &response)
154+
if err != nil {
155+
return nil, err
156+
}
157+
158+
return response, nil
159+
}
160+
161+
func (a *Arc) BroadcastCtx(ctx context.Context, t *transaction.Transaction) (*transaction.BroadcastSuccess, *transaction.BroadcastFailure) {
162+
response, err := a.ArcBroadcast(ctx, t)
162163
if err != nil {
163164
return nil, &transaction.BroadcastFailure{
164165
Code: "500",

0 commit comments

Comments
 (0)