OSDN Git Service

Fix typo and delete coretest
[bytom/bytom.git] / blockchain / receivers.go
1 package blockchain
2
3 import (
4         "context"
5         "sync"
6         "time"
7
8         "github.com/bytom/net/http/reqid"
9 )
10
11 // POST /create-account-receiver
12 func (a *BlockchainReactor) createAccountReceiver(ctx context.Context, ins []struct {
13         AccountID    string    `json:"account_id"`
14         AccountAlias string    `json:"account_alias"`
15         ExpiresAt    time.Time `json:"expires_at"`
16 }) []interface{} {
17         responses := make([]interface{}, len(ins))
18         var wg sync.WaitGroup
19         wg.Add(len(responses))
20
21         for i := 0; i < len(responses); i++ {
22                 go func(i int) {
23                         subctx := reqid.NewSubContext(ctx, reqid.New())
24                         defer wg.Done()
25                         defer batchRecover(subctx, &responses[i])
26
27                         receiver, err := a.accounts.CreateReceiver(subctx, ins[i].AccountID, ins[i].AccountAlias, ins[i].ExpiresAt)
28                         if err != nil {
29                                 responses[i] = err
30                         } else {
31                                 responses[i] = receiver
32                         }
33                 }(i)
34         }
35
36         wg.Wait()
37         return responses
38 }