Commit 0e968f10 authored by linj's avatar linj

support command burn

parent 1a3c8998
...@@ -43,6 +43,7 @@ func TokenCmd() *cobra.Command { ...@@ -43,6 +43,7 @@ func TokenCmd() *cobra.Command {
CreateRawTokenRevokeTxCmd(), CreateRawTokenRevokeTxCmd(),
CreateTokenTransferExecCmd(), CreateTokenTransferExecCmd(),
CreateRawTokenMintTxCmd(), CreateRawTokenMintTxCmd(),
CreateRawTokenBurnTxCmd(),
GetTokenLogsCmd(), GetTokenLogsCmd(),
) )
...@@ -468,7 +469,7 @@ func tokenRevoke(cmd *cobra.Command, args []string) { ...@@ -468,7 +469,7 @@ func tokenRevoke(cmd *cobra.Command, args []string) {
ctx.RunWithoutMarshal() ctx.RunWithoutMarshal()
} }
// CreateRawTokenMintTxCmd create raw token finish create transaction // CreateRawTokenMintTxCmd create raw token mintage transaction
func CreateRawTokenMintTxCmd() *cobra.Command { func CreateRawTokenMintTxCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "mint", Use: "mint",
...@@ -503,6 +504,42 @@ func tokenMint(cmd *cobra.Command, args []string) { ...@@ -503,6 +504,42 @@ func tokenMint(cmd *cobra.Command, args []string) {
ctx.RunWithoutMarshal() ctx.RunWithoutMarshal()
} }
// CreateRawTokenBurnTxCmd create raw token burn transaction
func CreateRawTokenBurnTxCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "burn",
Short: "Create a burn token transaction",
Run: tokenBurn,
}
addTokenBurnFlags(cmd)
return cmd
}
func addTokenBurnFlags(cmd *cobra.Command) {
cmd.Flags().StringP("symbol", "s", "", "token symbol")
cmd.MarkFlagRequired("symbol")
cmd.Flags().Float64P("amount", "a", 0, "amount of burn")
cmd.MarkFlagRequired("amount")
cmd.Flags().Float64P("fee", "f", 0, "token transaction fee")
}
func tokenBurn(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
symbol, _ := cmd.Flags().GetString("symbol")
amount, _ := cmd.Flags().GetFloat64("amount")
params := &tokenty.TokenBurn{
Symbol: symbol,
Amount: int64((amount+0.000001)*1e4) * 1e4,
}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "token.CreateRawTokenBurnTx", params, nil)
ctx.RunWithoutMarshal()
}
// GetTokenLogsCmd get logs of token // GetTokenLogsCmd get logs of token
func GetTokenLogsCmd() *cobra.Command { func GetTokenLogsCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
......
...@@ -134,3 +134,16 @@ func (c *Jrpc) CreateRawTokenMintTx(param *tokenty.TokenMint, result *interface{ ...@@ -134,3 +134,16 @@ func (c *Jrpc) CreateRawTokenMintTx(param *tokenty.TokenMint, result *interface{
*result = hex.EncodeToString(data) *result = hex.EncodeToString(data)
return nil return nil
} }
// CreateRawTokenBurnTx 创建未签名的 burn Token交易
func (c *Jrpc) CreateRawTokenBurnTx(param *tokenty.TokenBurn, result *interface{}) error {
if param == nil || param.Symbol == "" || param.Amount <= 0 {
return types.ErrInvalidParam
}
data, err := types.CallCreateTx(types.ExecName(tokenty.TokenX), "TokenBurn", param)
if err != nil {
return err
}
*result = hex.EncodeToString(data)
return nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment