MCPcopy Create free account
hub / github.com/Sifchain/sifnode / GetOpenCmd

Function GetOpenCmd

x/margin/client/cli/tx.go:39–109  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

37}
38
39func GetOpenCmd() *cobra.Command {
40 cmd := &cobra.Command{
41 Use: "open",
42 Short: "Open margin position",
43 RunE: func(cmd *cobra.Command, args []string) error {
44 clientCtx, err := client.GetClientTxContext(cmd)
45 if err != nil {
46 return err
47 }
48
49 signer := clientCtx.GetFromAddress()
50 if signer == nil {
51 return errors.New("signer address is missing")
52 }
53
54 collateralAsset, err := cmd.Flags().GetString("collateral_asset")
55 if err != nil {
56 return err
57 }
58
59 collateralAmount, err := cmd.Flags().GetString("collateral_amount")
60 if err != nil {
61 return err
62 }
63
64 borrowAsset, err := cmd.Flags().GetString("borrow_asset")
65 if err != nil {
66 return err
67 }
68
69 position, err := cmd.Flags().GetString("position")
70 if err != nil {
71 return err
72 }
73 positionEnum := types.GetPositionFromString(position)
74
75 leverage, err := cmd.Flags().GetString("leverage")
76 if err != nil {
77 return err
78 }
79 leverageDec, err := sdk.NewDecFromStr(leverage)
80 if err != nil {
81 return err
82 }
83
84 msg := types.MsgOpen{
85 Signer: signer.String(),
86 CollateralAsset: collateralAsset,
87 CollateralAmount: sdk.NewUintFromString(collateralAmount),
88 BorrowAsset: borrowAsset,
89 Position: positionEnum,
90 Leverage: leverageDec,
91 }
92
93 return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), &msg)
94 },
95 }
96 cmd.Flags().String("collateral_amount", "0", "amount of collateral asset")

Callers 1

GetTxCmdFunction · 0.85

Calls 1

StringMethod · 0.45

Tested by

no test coverage detected