MCPcopy Create free account
hub / github.com/chain/Core / createControlProgram

Method createControlProgram

core/control_programs.go:16–51  ·  view source on GitHub ↗

POST /create-control-program

(ctx context.Context, ins []struct {
	Type   string
	Params stdjson.RawMessage
})

Source from the content-addressed store, hash-verified

14
15// POST /create-control-program
16func (a *API) createControlProgram(ctx context.Context, ins []struct {
17 Type string
18 Params stdjson.RawMessage
19}) interface{} {
20
21 responses := make([]interface{}, len(ins))
22 var wg sync.WaitGroup
23 wg.Add(len(responses))
24
25 for i := 0; i < len(responses); i++ {
26 go func(i int) {
27 subctx := reqid.NewSubContext(ctx, reqid.New())
28 defer wg.Done()
29 defer batchRecover(subctx, &responses[i])
30
31 var (
32 prog interface{}
33 err error
34 )
35 switch ins[i].Type {
36 case "account":
37 prog, err = a.createAccountControlProgram(subctx, ins[i].Params)
38 default:
39 err = errors.WithDetailf(httpjson.ErrBadRequest, "unknown control program type %q", ins[i].Type)
40 }
41 if err != nil {
42 responses[i] = err
43 } else {
44 responses[i] = prog
45 }
46 }(i)
47 }
48
49 wg.Wait()
50 return responses
51}
52
53func (a *API) createAccountControlProgram(ctx context.Context, input []byte) (interface{}, error) {
54 var parsed struct {

Callers

nothing calls this directly

Calls 4

batchRecoverFunction · 0.85
WaitMethod · 0.80
AddMethod · 0.45

Tested by

no test coverage detected