@@ -17,15 +17,19 @@ import (
1717type ArcStatus string
1818
1919const (
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
3135type 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