Skip to content

Commit b6959e6

Browse files
committed
refactor(fund): change to loop.
Signed-off-by: Sophia Koehler <[email protected]>
1 parent 5751705 commit b6959e6

File tree

2 files changed

+37
-30
lines changed

2 files changed

+37
-30
lines changed

channel/funder.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package channel
1616

1717
import (
18+
"bytes"
1819
"context"
1920
"fmt"
2021
"math/big"
@@ -41,13 +42,25 @@ import (
4142
perror "polycry.pt/poly-go/errors"
4243
)
4344

45+
// LogCapturer is a custom logger that captures log messages.
46+
type LogCapturer struct {
47+
capturedLogs *bytes.Buffer
48+
}
49+
4450
type assetHolder struct {
4551
*assetholder.Assetholder
4652
*common.Address
4753
contract *bind.BoundContract
4854
assetIndex channel.Index
4955
}
5056

57+
// NewLogCapturer creates a new LogCapturer instance.
58+
func NewLogCapturer() *LogCapturer {
59+
return &LogCapturer{
60+
capturedLogs: new(bytes.Buffer),
61+
}
62+
}
63+
5164
// Funder implements the channel.Funder interface for Ethereum.
5265
//
5366
// In addition to the `Fund` method required by the `Funder` interface, it also
@@ -185,6 +198,7 @@ func (f *Funder) Fund(ctx context.Context, request channel.FundingReq) error {
185198
if channel.IsAssetFundingError(err) && err != nil {
186199
fundingErr, ok := err.(*channel.AssetFundingError)
187200
if !ok {
201+
fmt.Println(err)
188202
return fmt.Errorf("wrong type: expected %T, got %T", &channel.AssetFundingError{}, err)
189203
}
190204
fundingErrs = append(fundingErrs, fundingErr)
@@ -410,6 +424,7 @@ loop:
410424
select {
411425
case rawEvent := <-deposited:
412426
event, ok := rawEvent.Data.(*assetholder.AssetholderDeposited)
427+
fmt.Println("Funding Event ", event)
413428
if !ok {
414429
log.Panic("wrong event type")
415430
}

channel/test/fund.go

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,38 +36,30 @@ func FundAll(ctx context.Context, funders []*channel.Funder, reqs []*pchannel.Fu
3636
var mutex sync.Mutex
3737

3838
var wg sync.WaitGroup
39-
wg.Add(2)
39+
wg.Add(len(funders))
4040

41-
go func() {
42-
defer wg.Done()
43-
startTime := time.Now()
44-
err := funders[egoisticIndex].Fund(ctx, *reqs[egoisticIndex])
45-
require.NoError(t, err)
46-
finishTime := time.Now()
47-
require.NoError(t, err)
48-
mutex.Lock()
49-
finishTimes[egoisticIndex] = FunderFinishTime{
50-
Index: egoisticIndex,
51-
Time: finishTime.Sub(startTime),
52-
}
53-
mutex.Unlock()
54-
}()
41+
waitTime := 2 * time.Second
5542

56-
go func() {
57-
defer wg.Done()
58-
time.Sleep(2 * time.Second)
59-
startTime := time.Now()
60-
err := funders[1-egoisticIndex].Fund(ctx, *reqs[1-egoisticIndex])
61-
require.NoError(t, err)
62-
finishTime := time.Now()
63-
require.NoError(t, err)
64-
mutex.Lock()
65-
finishTimes[1-egoisticIndex] = FunderFinishTime{
66-
Index: 1 - egoisticIndex,
67-
Time: finishTime.Sub(startTime),
68-
}
69-
mutex.Unlock()
70-
}()
43+
for i := range funders {
44+
i := i
45+
go func() {
46+
defer wg.Done()
47+
if i != egoisticIndex {
48+
time.Sleep(waitTime)
49+
}
50+
startTime := time.Now()
51+
err := funders[i].Fund(ctx, *reqs[i])
52+
require.NoError(t, err)
53+
finishTime := time.Now()
54+
mutex.Lock()
55+
finishTimes[i] = FunderFinishTime{
56+
Index: i,
57+
Time: finishTime.Sub(startTime),
58+
}
59+
mutex.Unlock()
60+
}()
61+
62+
}
7163

7264
wg.Wait()
7365
return finishTimes, nil

0 commit comments

Comments
 (0)