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

Method createAccountControlProgram

core/control_programs.go:53–81  ·  view source on GitHub ↗
(ctx context.Context, input []byte)

Source from the content-addressed store, hash-verified

51}
52
53func (a *API) createAccountControlProgram(ctx context.Context, input []byte) (interface{}, error) {
54 var parsed struct {
55 AccountAlias string `json:"account_alias"`
56 AccountID string `json:"account_id"`
57 }
58 err := stdjson.Unmarshal(input, &parsed)
59 if err != nil {
60 return nil, errors.WithDetailf(httpjson.ErrBadRequest, "bad parameters for account control program")
61 }
62
63 accountID := parsed.AccountID
64 if accountID == "" {
65 acc, err := a.accounts.FindByAlias(ctx, parsed.AccountAlias)
66 if err != nil {
67 return nil, err
68 }
69 accountID = acc.ID
70 }
71
72 controlProgram, err := a.accounts.CreateControlProgram(ctx, accountID, false, time.Time{})
73 if err != nil {
74 return nil, err
75 }
76
77 ret := map[string]interface{}{
78 "control_program": json.HexBytes(controlProgram),
79 }
80 return ret, nil
81}

Callers 1

createControlProgramMethod · 0.95

Calls 2

CreateControlProgramMethod · 0.80
FindByAliasMethod · 0.45

Tested by

no test coverage detected