@@ -19,52 +19,44 @@ func GetSenderAddresses(destTxs []string) ([]string, error) {
1919 return nil , fmt .Errorf ("cannot create a bitcoind client" )
2020 }
2121 addrs := []string {}
22+ errs := []error {}
2223 for _ , txid := range destTxs {
2324 t , err := bc .GetRawTransaction (txid , true )
2425 if err != nil {
26+ log .Printf ("GetSenderAddresses - GetRawTransaction(%s) error: %v" , txid , err )
27+ errs = append (errs , err )
2528 continue
2629 }
2730 rawtx , ok := t .(gbitcoind.RawTransaction )
2831 if ! ok {
32+ err = fmt .Errorf ("failed to cast txid %s to RawTransaction" , txid )
33+ log .Printf ("GetSenderAddresses - %v" , err )
34+ errs = append (errs , err )
2935 continue
3036 }
3137 for _ , vin := range rawtx .Vin {
3238 tin , err := bc .GetRawTransaction (vin .Txid , true )
3339 if err != nil {
40+ log .Printf ("GetSenderAddresses - GetRawTransaction(%s) error: %v" , vin .Txid , err )
41+ errs = append (errs , err )
3442 continue
3543 }
3644 rawtin , ok := tin .(gbitcoind.RawTransaction )
3745 if ! ok {
46+ err = fmt .Errorf ("failed to cast txid %s to RawTransaction" , txid )
47+ log .Printf ("GetSenderAddresses - %v" , err )
48+ errs = append (errs , err )
3849 continue
3950 }
4051 spk := rawtin .Vout [vin .Vout ].ScriptPubKey
4152 addrs = append (addrs , spk .Address )
4253 addrs = append (addrs , spk .Addresses ... )
43- //fmt.Printf("from addr: %v\n", address)
4454 }
4555 }
46- return addrs , nil
47- }
4856
49- func GetTransaction (txid string ) (* gbitcoind.RawTransaction , error ) {
50- bitcoindPort , err := strconv .Atoi (os .Getenv ("BITCOIND_PORT" ))
51- if err != nil {
52- return nil , fmt .Errorf ("no valid port for bitcoind: %v" , os .Getenv ("BITCOIND_PORT" ))
53- }
54- bc , err := gbitcoind .New (os .Getenv ("BITCOIND_HOST" ), bitcoindPort , os .Getenv ("BITCOIND_USER" ), os .Getenv ("BITCOIND_PASSWORD" ), false )
55- if err != nil {
56- return nil , fmt .Errorf ("cannot create a bitcoind client: %w" , err )
57+ err = nil
58+ if len (errs ) > 0 {
59+ err = fmt .Errorf ("failed to get some addresses" )
5760 }
58-
59- t , err := bc .GetRawTransaction (txid , true )
60- if err != nil {
61- return nil , fmt .Errorf ("error getting tx: %w" , err )
62- }
63-
64- rawtx , ok := t .(gbitcoind.RawTransaction )
65- if ! ok {
66- return nil , fmt .Errorf ("tx is not a gbitcoind.RawTransaction: %w" , err )
67- }
68-
69- return & rawtx , nil
61+ return addrs , err
7062}
0 commit comments