Commit 7847aa74 authored by mdj33's avatar mdj33 Committed by vipwzw

quit use to GetCliSysParam

parent 100bcc22
......@@ -99,8 +99,7 @@ func addProposalBoardFlags(cmd *cobra.Command) {
}
func proposalBoard(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
year, _ := cmd.Flags().GetInt32("year")
......@@ -129,7 +128,7 @@ func proposalBoard(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "PropBoard",
Payload: payLoad,
}
......@@ -156,8 +155,7 @@ func addRevokeProposalBoardFlags(cmd *cobra.Command) {
}
func revokeProposalBoard(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -170,7 +168,7 @@ func revokeProposalBoard(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "RvkPropBoard",
Payload: payLoad,
}
......@@ -198,8 +196,7 @@ func addVoteProposalBoardFlags(cmd *cobra.Command) {
}
func voteProposalBoard(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -227,7 +224,7 @@ func voteProposalBoard(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "VotePropBoard",
Payload: payLoad,
}
......@@ -254,8 +251,7 @@ func addTerminateProposalBoardFlags(cmd *cobra.Command) {
}
func terminateProposalBoard(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -268,7 +264,7 @@ func terminateProposalBoard(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "TmintPropBoard",
Payload: payLoad,
}
......
......@@ -41,10 +41,8 @@ func addProposalChangeFlags(cmd *cobra.Command) {
}
func proposalChange(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
year, _ := cmd.Flags().GetInt32("year")
month, _ := cmd.Flags().GetInt32("month")
day, _ := cmd.Flags().GetInt32("day")
......@@ -88,7 +86,7 @@ func proposalChange(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "PropChange",
Payload: payLoad,
}
......@@ -115,10 +113,8 @@ func addRevokeProposalChangeFlags(cmd *cobra.Command) {
}
func revokeProposalChange(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
ID, _ := cmd.Flags().GetString("proposalID")
params := &auty.RevokeProposalChange{
......@@ -129,7 +125,7 @@ func revokeProposalChange(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "RvkPropChange",
Payload: payLoad,
}
......@@ -156,10 +152,8 @@ func addVoteProposalChangeFlags(cmd *cobra.Command) {
}
func voteProposalChange(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
ID, _ := cmd.Flags().GetString("proposalID")
approve, _ := cmd.Flags().GetInt32("approve")
......@@ -179,7 +173,7 @@ func voteProposalChange(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "VotePropChange",
Payload: payLoad,
}
......@@ -206,10 +200,8 @@ func addTerminateProposalChangeFlags(cmd *cobra.Command) {
}
func terminateProposalChange(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
ID, _ := cmd.Flags().GetString("proposalID")
params := &auty.RevokeProposalChange{
......@@ -220,7 +212,7 @@ func terminateProposalChange(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "TmintPropChange",
Payload: payLoad,
}
......
......@@ -135,8 +135,7 @@ func addRevokeProposalProjectFlags(cmd *cobra.Command) {
}
func revokeProposalProject(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -149,7 +148,7 @@ func revokeProposalProject(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "RvkPropProject",
Payload: payLoad,
}
......@@ -176,8 +175,7 @@ func addVoteProposalProjectFlags(cmd *cobra.Command) {
}
func voteProposalProject(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -198,7 +196,7 @@ func voteProposalProject(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "VotePropProject",
Payload: payLoad,
}
......@@ -226,8 +224,7 @@ func addPubVoteProposalProjectFlags(cmd *cobra.Command) {
}
func pubVoteProposalProject(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -256,7 +253,7 @@ func pubVoteProposalProject(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "PubVotePropProject",
Payload: payLoad,
}
......@@ -282,8 +279,7 @@ func addTerminateProposalProjectFlags(cmd *cobra.Command) {
}
func terminateProposalProject(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -296,7 +292,7 @@ func terminateProposalProject(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "TmintPropProject",
Payload: payLoad,
}
......
......@@ -118,8 +118,7 @@ func addRevokeProposalRuleFlags(cmd *cobra.Command) {
}
func revokeProposalRule(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -132,7 +131,7 @@ func revokeProposalRule(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "RvkPropRule",
Payload: payLoad,
}
......@@ -160,8 +159,7 @@ func addVoteProposalRuleFlags(cmd *cobra.Command) {
}
func voteProposalRule(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -189,7 +187,7 @@ func voteProposalRule(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "VotePropRule",
Payload: payLoad,
}
......@@ -215,8 +213,7 @@ func addTerminateProposalRuleFlags(cmd *cobra.Command) {
}
func terminateProposalRule(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ID, _ := cmd.Flags().GetString("proposalID")
......@@ -229,7 +226,7 @@ func terminateProposalRule(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "TmintPropRule",
Payload: payLoad,
}
......@@ -391,8 +388,7 @@ func addCommentProposalflags(cmd *cobra.Command) {
}
func commentProposal(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
proposalID, _ := cmd.Flags().GetString("proposalID")
......@@ -409,7 +405,7 @@ func commentProposal(cmd *cobra.Command, args []string) {
return
}
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(auty.AutonomyX),
Execer: types.GetExecName(auty.AutonomyX, paraName),
ActionName: "CommentProp",
Payload: payLoad,
}
......
......@@ -51,17 +51,12 @@ func addCollateralizeCreateFlags(cmd *cobra.Command) {
//CollateralizeCreate ...
func CollateralizeCreate(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
balance, _ := cmd.Flags().GetFloat64("balance")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizeCreate",
Payload: []byte(fmt.Sprintf("{\"totalBalance\":%f}", balance)),
}
......@@ -91,18 +86,13 @@ func addCollateralizeBorrowFlags(cmd *cobra.Command) {
//CollateralizeBorrow ...
func CollateralizeBorrow(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
collateralizeID, _ := cmd.Flags().GetString("collateralizeID")
value, _ := cmd.Flags().GetFloat64("value")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizeBorrow",
Payload: []byte(fmt.Sprintf("{\"collateralizeID\":\"%s\",\"value\":%f}", collateralizeID, value)),
}
......@@ -134,19 +124,14 @@ func addCollateralizeAppendFlags(cmd *cobra.Command) {
//CollateralizeAppend ...
func CollateralizeAppend(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
collateralizeID, _ := cmd.Flags().GetString("collateralizeID")
recordID, _ := cmd.Flags().GetString("recordID")
value, _ := cmd.Flags().GetFloat64("value")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizeAppend",
Payload: []byte(fmt.Sprintf("{\"collateralizeID\":\"%s\", \"recordID\":\"%s\", \"value\":%f}", collateralizeID, recordID, value)),
}
......@@ -176,18 +161,13 @@ func addCollateralizeRepayFlags(cmd *cobra.Command) {
//CollateralizeRepay ...
func CollateralizeRepay(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
collateralizeID, _ := cmd.Flags().GetString("collateralizeID")
recordID, _ := cmd.Flags().GetString("recordID")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizeRepay",
Payload: []byte(fmt.Sprintf("{\"collateralizeID\":\"%s\",\"recordID\":\"%s\"}", collateralizeID, recordID)),
}
......@@ -217,18 +197,13 @@ func addCollateralizePriceFeedFlags(cmd *cobra.Command) {
//CollateralizePriceFeed ...
func CollateralizePriceFeed(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
price, _ := cmd.Flags().GetFloat64("price")
volume, _ := cmd.Flags().GetUint64("volume")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizePriceFeed",
Payload: []byte(fmt.Sprintf("{\"price\":[ %f ], \"volume\":[ %d ]}", price, volume)),
}
......@@ -258,18 +233,13 @@ func addCollateralizeRetrieveFlags(cmd *cobra.Command) {
//CollateralizeRetrieve ...
func CollateralizeRetrieve(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
collateralizeID, _ := cmd.Flags().GetString("collateralizeID")
balance, _ := cmd.Flags().GetFloat64("balance")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizeRetrieve",
Payload: []byte(fmt.Sprintf("{\"collateralizeID\":\"%s\", \"balance\": %f}", collateralizeID, balance)),
}
......@@ -300,12 +270,7 @@ func addCollateralizeManageFlags(cmd *cobra.Command) {
//CollateralizeManage ...
func CollateralizeManage(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
debtCeiling, _ := cmd.Flags().GetFloat64("debtCeiling")
liquidationRatio, _ := cmd.Flags().GetFloat64("liquidationRatio")
......@@ -314,7 +279,7 @@ func CollateralizeManage(cmd *cobra.Command, args []string) {
totalBalance, _ := cmd.Flags().GetFloat64("totalBalance")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.CollateralizeX),
Execer: types.GetExecName(pkt.CollateralizeX, paraName),
ActionName: "CollateralizeManage",
Payload: []byte(fmt.Sprintf("{\"debtCeiling\":%f, \"liquidationRatio\":%f, \"stabilityFeeRatio\":%f, \"period\":%d, \"totalBalance\":%f}",
debtCeiling, liquidationRatio, stabilityFeeRatio, period, totalBalance)),
......
......@@ -9,6 +9,8 @@ import (
"math"
"reflect"
"github.com/pkg/errors"
"github.com/33cn/chain33/common/address"
log "github.com/33cn/chain33/common/log/log15"
"github.com/33cn/chain33/types"
......@@ -155,9 +157,12 @@ func CreateRawCollateralizeCreateTx(cfg *types.Chain33Config, parm *Collateraliz
llog.Error("CreateRawCollateralizeCreateTx", "parm", parm)
return nil, types.ErrInvalidParam
}
totalBalanceInt64, err := types.FormatFloatDisplay2Value(parm.TotalBalance, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.TotalBalance")
}
v := &CollateralizeCreate{
TotalBalance: int64(math.Trunc((parm.TotalBalance+0.0000001)*1e4)) * 1e4,
TotalBalance: totalBalanceInt64,
}
create := &CollateralizeAction{
Ty: CollateralizeActionCreate,
......@@ -170,7 +175,7 @@ func CreateRawCollateralizeCreateTx(cfg *types.Chain33Config, parm *Collateraliz
To: address.ExecAddress(cfg.ExecName(CollateralizeX)),
}
name := cfg.ExecName(CollateralizeX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......@@ -183,10 +188,13 @@ func CreateRawCollateralizeBorrowTx(cfg *types.Chain33Config, parm *Collateraliz
llog.Error("CreateRawCollateralizeBorrowTx", "parm", parm)
return nil, types.ErrInvalidParam
}
valueInt64, err := types.FormatFloatDisplay2Value(parm.Value, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.Value")
}
v := &CollateralizeBorrow{
CollateralizeId: parm.CollateralizeID,
Value: int64(math.Trunc((parm.Value+0.0000001)*1e4)) * 1e4,
Value: valueInt64,
}
borrow := &CollateralizeAction{
Ty: CollateralizeActionBorrow,
......@@ -199,7 +207,7 @@ func CreateRawCollateralizeBorrowTx(cfg *types.Chain33Config, parm *Collateraliz
To: address.ExecAddress(cfg.ExecName(CollateralizeX)),
}
name := cfg.ExecName(CollateralizeX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......@@ -241,11 +249,14 @@ func CreateRawCollateralizeAppendTx(cfg *types.Chain33Config, parm *Collateraliz
llog.Error("CreateRawCollateralizeAppendTx", "parm", parm)
return nil, types.ErrInvalidParam
}
valueInt64, err := types.FormatFloatDisplay2Value(parm.Value, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.Value")
}
v := &CollateralizeAppend{
CollateralizeId: parm.CollateralizeID,
RecordId: parm.RecordID,
CollateralValue: int64(math.Trunc((parm.Value+0.0000001)*1e4)) * 1e4,
CollateralValue: valueInt64,
}
append := &CollateralizeAction{
Ty: CollateralizeActionAppend,
......@@ -258,7 +269,7 @@ func CreateRawCollateralizeAppendTx(cfg *types.Chain33Config, parm *Collateraliz
To: address.ExecAddress(cfg.ExecName(CollateralizeX)),
}
name := cfg.ExecName(CollateralizeX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......@@ -304,10 +315,13 @@ func CreateRawCollateralizeRetrieveTx(cfg *types.Chain33Config, parm *Collateral
llog.Error("CreateRawCollateralizeCloseTx", "parm", parm)
return nil, types.ErrInvalidParam
}
balanceInt64, err := types.FormatFloatDisplay2Value(parm.Balance, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.Balance")
}
v := &CollateralizeRetrieve{
CollateralizeId: parm.CollateralizeID,
Balance: int64(math.Trunc((parm.Balance+0.0000001)*1e4)) * 1e4,
Balance: balanceInt64,
}
close := &CollateralizeAction{
Ty: CollateralizeActionRetrieve,
......@@ -321,7 +335,7 @@ func CreateRawCollateralizeRetrieveTx(cfg *types.Chain33Config, parm *Collateral
}
name := cfg.ExecName(CollateralizeX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......@@ -334,13 +348,20 @@ func CreateRawCollateralizeManageTx(cfg *types.Chain33Config, parm *Collateraliz
llog.Error("CreateRawCollateralizeManageTx", "parm", parm)
return nil, types.ErrInvalidParam
}
totalBalanceInt64, err := types.FormatFloatDisplay2Value(parm.TotalBalance, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.totalBalance")
}
debtCeilingInt64, err := types.FormatFloatDisplay2Value(parm.DebtCeiling, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.DebtCeiling")
}
v := &CollateralizeManage{
DebtCeiling: int64(math.Trunc((parm.DebtCeiling+0.0000001)*1e4)) * 1e4,
DebtCeiling: debtCeilingInt64,
LiquidationRatio: int64(math.Trunc((parm.LiquidationRatio + 0.0000001) * 1e4)),
StabilityFeeRatio: int64(math.Trunc((parm.StabilityFeeRatio + 0.0000001) * 1e4)),
Period: parm.Period,
TotalBalance: int64(math.Trunc((parm.TotalBalance+0.0000001)*1e4)) * 1e4,
TotalBalance: totalBalanceInt64,
}
manage := &CollateralizeAction{
......@@ -355,7 +376,7 @@ func CreateRawCollateralizeManageTx(cfg *types.Chain33Config, parm *Collateraliz
}
name := cfg.ExecName(CollateralizeX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......
......@@ -86,8 +86,7 @@ func addRegistFlags(cmd *cobra.Command) {
}
func regist(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -96,7 +95,7 @@ func regist(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"address\":\"%s\", \"IP\":\"%s\"}", pubkey, address, ip)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateRegistTx,
Payload: []byte(payload),
}
......@@ -127,8 +126,7 @@ func addCancelRegistFlags(cmd *cobra.Command) {
}
func cancelRegist(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -136,7 +134,7 @@ func cancelRegist(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"address\":\"%s\"}", pubkey, address)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateCancelRegistTx,
Payload: []byte(payload),
}
......@@ -167,8 +165,7 @@ func addVoteFlags(cmd *cobra.Command) {
}
func vote(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -177,7 +174,7 @@ func vote(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"votes\":\"%d\", \"fromAddr\":\"%s\"}", pubkey, votes, addr)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateVoteTx,
Payload: []byte(payload),
}
......@@ -207,8 +204,7 @@ func addCancelVoteFlags(cmd *cobra.Command) {
}
func cancelVote(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -216,7 +212,7 @@ func cancelVote(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"index\":\"%d\"}", pubkey, index)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateCancelVoteTx,
Payload: []byte(payload),
}
......@@ -249,8 +245,7 @@ func addReRegistFlags(cmd *cobra.Command) {
}
func reRegist(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -259,7 +254,7 @@ func reRegist(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"address\":\"%s\", \"IP\":\"%s\"}", pubkey, address, ip)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateReRegistTx,
Payload: []byte(payload),
}
......@@ -384,8 +379,7 @@ func addVrfMFlags(cmd *cobra.Command) {
}
func vrfM(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -394,7 +388,7 @@ func vrfM(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"cycle\":\"%d\", \"m\":\"%s\"}", pubkey, cycle, m)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateRegistVrfMTx,
Payload: []byte(payload),
}
......@@ -430,8 +424,7 @@ func addVrfRPRegistFlags(cmd *cobra.Command) {
}
func vrfRP(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pubkey, _ := cmd.Flags().GetString("pubkey")
......@@ -441,7 +434,7 @@ func vrfRP(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"pubkey\":\"%s\", \"cycle\":\"%d\", \"r\":\"%s\", \"p\":\"%s\"}", pubkey, cycle, hash, proof)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateRegistVrfRPTx,
Payload: []byte(payload),
}
......@@ -826,8 +819,7 @@ func recordCB(cmd *cobra.Command, args []string) {
if err != nil {
return
}
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
key, _ := cmd.Flags().GetString("privKey")
......@@ -875,7 +867,7 @@ func recordCB(cmd *cobra.Command, args []string) {
cycle, height, hash, hex.EncodeToString(privKey.PubKey().Bytes()), sig)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(dty.DPosX),
Execer: types.GetExecName(dty.DPosX, paraName),
ActionName: dty.CreateRecordCBTx,
Payload: []byte(payload),
}
......
......@@ -255,9 +255,7 @@ func addCreateContractFlags(cmd *cobra.Command) {
}
func createContract(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
code, _ := cmd.Flags().GetString("code")
note, _ := cmd.Flags().GetString("note")
alias, _ := cmd.Flags().GetString("alias")
......@@ -267,7 +265,16 @@ func createContract(cmd *cobra.Command, args []string) {
constructorPara, _ := cmd.Flags().GetString("parameter")
chainID, _ := cmd.Flags().GetInt32("chainID")
feeInt64 := uint64(fee*1e4) * 1e4
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
var action evmtypes.EVMContractAction
bCode, err := common.FromHex(code)
......@@ -275,7 +282,7 @@ func createContract(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, "parse evm code error", err)
return
}
exector := cfg.ExecName(paraName + "evm")
exector := types.GetExecName("evm", paraName)
action = evmtypes.EVMContractAction{Amount: 0, Code: bCode, GasLimit: 0, GasPrice: 0, Note: note, Alias: alias, ContractAddr: address.ExecAddress(exector)}
if "" != constructorPara {
......@@ -289,9 +296,9 @@ func createContract(cmd *cobra.Command, args []string) {
}
tx := &types.Transaction{Execer: []byte(exector), Payload: types.Encode(&action), Fee: 0, To: action.ContractAddr, ChainID: chainID}
tx.Fee, _ = tx.GetRealFee(cfg.GetMinTxFeeRate())
if tx.Fee < int64(feeInt64) {
tx.Fee += int64(feeInt64)
tx.Fee, _ = tx.GetRealFee(cfg.MinTxFeeRate)
if tx.Fee < feeInt64 {
tx.Fee += feeInt64
}
random := rand.New(rand.NewSource(time.Now().UnixNano()))
......@@ -301,12 +308,12 @@ func createContract(cmd *cobra.Command, args []string) {
fmt.Println(rawTx)
}
func createEvmTx(cfg *types.Chain33Config, action proto.Message, execer, caller, toAddr, expire, rpcLaddr string, fee uint64, chainID int32) (string, error) {
func createEvmTx(cfg *rpctypes.ChainConfigInfo, action proto.Message, execer, caller, toAddr, expire, rpcLaddr string, fee int64, chainID int32) (string, error) {
tx := &types.Transaction{Execer: []byte(execer), Payload: types.Encode(action), Fee: 0, To: toAddr, ChainID: chainID}
tx.Fee, _ = tx.GetRealFee(cfg.GetMinTxFeeRate())
if tx.Fee < int64(fee) {
tx.Fee += int64(fee)
tx.Fee, _ = tx.GetRealFee(cfg.MinTxFeeRate)
if tx.Fee < fee {
tx.Fee += fee
}
random := rand.New(rand.NewSource(time.Now().UnixNano()))
......@@ -349,9 +356,6 @@ func callContractCmd() *cobra.Command {
}
func callContract(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
note, _ := cmd.Flags().GetString("note")
amount, _ := cmd.Flags().GetFloat64("amount")
fee, _ := cmd.Flags().GetFloat64("fee")
......@@ -361,8 +365,22 @@ func callContract(cmd *cobra.Command, args []string) {
paraName, _ := cmd.Flags().GetString("paraName")
chainID, _ := cmd.Flags().GetInt32("chainID")
amountInt64 := uint64(amount*1e4) * 1e4
feeInt64 := uint64(fee*1e4) * 1e4
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
abiFileName := path + contractAddr + ".abi"
abiStr, err := readFile(abiFileName)
......@@ -377,9 +395,9 @@ func callContract(cmd *cobra.Command, args []string) {
return
}
action := evmtypes.EVMContractAction{Amount: amountInt64, GasLimit: 0, GasPrice: 0, Note: note, Para: packedParameter, ContractAddr: contractAddr}
action := evmtypes.EVMContractAction{Amount: uint64(amountInt64), GasLimit: 0, GasPrice: 0, Note: note, Para: packedParameter, ContractAddr: contractAddr}
exector := cfg.ExecName(paraName + "evm")
exector := types.GetExecName("evm", paraName)
toAddr := address.ExecAddress(exector)
tx := &types.Transaction{Execer: []byte(exector), Payload: types.Encode(&action), Fee: 0, To: toAddr, ChainID: chainID}
......@@ -636,18 +654,25 @@ func addEvmTransferFlags(cmd *cobra.Command) {
}
func evmTransfer(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
caller, _ := cmd.Flags().GetString("caller")
amount, _ := cmd.Flags().GetFloat64("amount")
receiver, _ := cmd.Flags().GetString("receiver")
expire, _ := cmd.Flags().GetString("expire")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
chainID, _ := cmd.Flags().GetInt32("chainID")
amountInt64 := int64(amount*1e4) * 1e4
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
r_addr, err := address.NewAddrFromString(receiver)
if nil != err {
......@@ -655,7 +680,7 @@ func evmTransfer(cmd *cobra.Command, args []string) {
return
}
exector := cfg.ExecName(paraName + "evm")
exector := types.GetExecName("evm", paraName)
toAddr := address.ExecAddress(exector)
action := &evmtypes.EVMContractAction{
Amount: uint64(amountInt64),
......
......@@ -65,10 +65,8 @@ func addGuessStartFlags(cmd *cobra.Command) {
}
func guessStart(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
topic, _ := cmd.Flags().GetString("topic")
category, _ := cmd.Flags().GetString("category")
options, _ := cmd.Flags().GetString("options")
......@@ -83,7 +81,7 @@ func guessStart(cmd *cobra.Command, args []string) {
payload := fmt.Sprintf("{\"topic\":\"%s\", \"options\":\"%s\", \"category\":\"%s\", \"maxBetHeight\":%d, \"maxBetsOneTime\":%d,\"maxBetsNumber\":%d,\"devFeeFactor\":%d,\"platFeeFactor\":%d,\"expireHeight\":%d,\"devFeeAddr\":\"%s\",\"platFeeAddr\":\"%s\"}", topic, options, category, maxBetHeight, maxBetsOneTime, maxBetsNumber, devFeeFactor, platFeeFactor, expireHeight, devFeeAddr, platFeeAddr)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(gty.GuessX),
Execer: types.GetExecName(gty.GuessX, paraName),
ActionName: gty.CreateStartTx,
Payload: []byte(payload),
}
......@@ -115,17 +113,15 @@ func addGuessBetFlags(cmd *cobra.Command) {
}
func guessBet(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
gameID, _ := cmd.Flags().GetString("gameId")
option, _ := cmd.Flags().GetString("option")
betsNumber, _ := cmd.Flags().GetInt64("betsNumber")
payload := fmt.Sprintf("{\"gameID\":\"%s\", \"option\":\"%s\", \"betsNum\":%d}", gameID, option, betsNumber)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(gty.GuessX),
Execer: types.GetExecName(gty.GuessX, paraName),
ActionName: gty.CreateBetTx,
Payload: []byte(payload),
}
......@@ -152,15 +148,13 @@ func addGuessStopBetFlags(cmd *cobra.Command) {
}
func guessStopBet(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
gameID, _ := cmd.Flags().GetString("gameId")
payload := fmt.Sprintf("{\"gameID\":\"%s\"}", gameID)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(gty.GuessX),
Execer: types.GetExecName(gty.GuessX, paraName),
ActionName: gty.CreateStopBetTx,
Payload: []byte(payload),
}
......@@ -187,15 +181,13 @@ func addGuessAbortFlags(cmd *cobra.Command) {
}
func guessAbort(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
gameID, _ := cmd.Flags().GetString("gameId")
payload := fmt.Sprintf("{\"gameID\":\"%s\"}", gameID)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(gty.GuessX),
Execer: types.GetExecName(gty.GuessX, paraName),
ActionName: gty.CreateAbortTx,
Payload: []byte(payload),
}
......@@ -225,16 +217,14 @@ func addGuessPublishFlags(cmd *cobra.Command) {
}
func guessPublish(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
gameID, _ := cmd.Flags().GetString("gameId")
result, _ := cmd.Flags().GetString("result")
payload := fmt.Sprintf("{\"gameID\":\"%s\",\"result\":\"%s\"}", gameID, result)
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(gty.GuessX),
Execer: types.GetExecName(gty.GuessX, paraName),
ActionName: gty.CreatePublishTx,
Payload: []byte(payload),
}
......
......@@ -53,11 +53,7 @@ func addIssuanceCreateFlags(cmd *cobra.Command) {
//IssuanceCreate ....
func IssuanceCreate(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
balance, _ := cmd.Flags().GetFloat64("balance")
......@@ -66,7 +62,7 @@ func IssuanceCreate(cmd *cobra.Command, args []string) {
period, _ := cmd.Flags().GetUint64("period")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.IssuanceX),
Execer: types.GetExecName(pkt.IssuanceX, paraName),
ActionName: "IssuanceCreate",
Payload: []byte(fmt.Sprintf("{\"totalBalance\":%f, \"debtCeiling\":%f, \"liquidationRatio\":%f, \"period\":%d}",
balance, debtCeiling, liquidationRatio, period)),
......@@ -97,18 +93,14 @@ func addIssuanceDebtFlags(cmd *cobra.Command) {
//IssuanceDebt ...
func IssuanceDebt(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
issuanceID, _ := cmd.Flags().GetString("issuanceID")
value, _ := cmd.Flags().GetFloat64("value")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.IssuanceX),
Execer: types.GetExecName(pkt.IssuanceX, paraName),
ActionName: "IssuanceDebt",
Payload: []byte(fmt.Sprintf("{\"issuanceID\":\"%s\",\"value\":%f}", issuanceID, value)),
}
......@@ -138,18 +130,14 @@ func addIssuanceRepayFlags(cmd *cobra.Command) {
//IssuanceRepay ...
func IssuanceRepay(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
issuanceID, _ := cmd.Flags().GetString("issuanceID")
debtID, _ := cmd.Flags().GetString("debtID")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.IssuanceX),
Execer: types.GetExecName(pkt.IssuanceX, paraName),
ActionName: "IssuanceRepay",
Payload: []byte(fmt.Sprintf("{\"issuanceID\":\"%s\", \"debtID\":\"%s\"}", issuanceID, debtID)),
}
......@@ -179,18 +167,14 @@ func addIssuancePriceFeedFlags(cmd *cobra.Command) {
//IssuancePriceFeed ...
func IssuancePriceFeed(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
price, _ := cmd.Flags().GetFloat64("price")
volume, _ := cmd.Flags().GetUint64("volume")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.IssuanceX),
Execer: types.GetExecName(pkt.IssuanceX, paraName),
ActionName: "IssuancePriceFeed",
Payload: []byte(fmt.Sprintf("{\"price\":[ %f ], \"volume\":[ %d ]}", price, volume)),
}
......@@ -218,17 +202,13 @@ func addIssuanceCloseFlags(cmd *cobra.Command) {
//IssuanceClose ...
func IssuanceClose(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
issuanceID, _ := cmd.Flags().GetString("issuanceID")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.IssuanceX),
Execer: types.GetExecName(pkt.IssuanceX, paraName),
ActionName: "IssuanceClose",
Payload: []byte(fmt.Sprintf("{\"issuanceId\":\"%s\"}", issuanceID)),
}
......@@ -256,17 +236,13 @@ func addIssuanceManageFlags(cmd *cobra.Command) {
//IssuanceManage ...
func IssuanceManage(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
if cfg == nil {
panic(fmt.Sprintln("can not find CliSysParam title", title))
}
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
addr, _ := cmd.Flags().GetString("addr")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.IssuanceX),
Execer: types.GetExecName(pkt.IssuanceX, paraName),
ActionName: "IssuanceManage",
Payload: []byte(fmt.Sprintf("{\"addr\":[\"%s\"]}", addr)),
}
......
......@@ -9,6 +9,8 @@ import (
"math"
"reflect"
"github.com/pkg/errors"
"github.com/33cn/chain33/common/address"
log "github.com/33cn/chain33/common/log/log15"
"github.com/33cn/chain33/types"
......@@ -146,9 +148,18 @@ func CreateRawIssuanceCreateTx(cfg *types.Chain33Config, parm *IssuanceCreateTx)
return nil, types.ErrInvalidParam
}
totalBalanceInt64, err := types.FormatFloatDisplay2Value(parm.TotalBalance, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.totalBalance")
}
debtCeilingInt64, err := types.FormatFloatDisplay2Value(parm.DebtCeiling, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.DebtCeiling")
}
v := &IssuanceCreate{
TotalBalance: int64(math.Trunc((parm.TotalBalance+0.0000001)*1e4)) * 1e4,
DebtCeiling: int64(math.Trunc((parm.DebtCeiling+0.0000001)*1e4)) * 1e4,
TotalBalance: totalBalanceInt64,
DebtCeiling: debtCeilingInt64,
LiquidationRatio: int64(math.Trunc((parm.LiquidationRatio + 0.0000001) * 1e4)),
Period: parm.Period,
}
......@@ -163,7 +174,7 @@ func CreateRawIssuanceCreateTx(cfg *types.Chain33Config, parm *IssuanceCreateTx)
To: address.ExecAddress(cfg.ExecName(IssuanceX)),
}
name := cfg.ExecName(IssuanceX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......@@ -176,10 +187,13 @@ func CreateRawIssuanceDebtTx(cfg *types.Chain33Config, parm *IssuanceDebtTx) (*t
llog.Error("CreateRawIssuanceBorrowTx", "parm", parm)
return nil, types.ErrInvalidParam
}
valueInt64, err := types.FormatFloatDisplay2Value(parm.Value, cfg.GetCoinPrecision())
if err != nil {
return nil, errors.Wrapf(types.ErrInvalidParam, "FormatFloatDisplay2Value.Value")
}
v := &IssuanceDebt{
IssuanceId: parm.IssuanceID,
Value: int64(math.Trunc((parm.Value+0.0000001)*1e4)) * 1e4,
Value: valueInt64,
}
debt := &IssuanceAction{
Ty: IssuanceActionDebt,
......@@ -192,7 +206,7 @@ func CreateRawIssuanceDebtTx(cfg *types.Chain33Config, parm *IssuanceDebtTx) (*t
To: address.ExecAddress(cfg.ExecName(IssuanceX)),
}
name := cfg.ExecName(IssuanceX)
tx, err := types.FormatTx(cfg, name, tx)
tx, err = types.FormatTx(cfg, name, tx)
if err != nil {
return nil, err
}
......
......@@ -6,7 +6,6 @@ package commands
import (
"fmt"
"math"
"os"
"strconv"
"strings"
......@@ -141,6 +140,12 @@ func createMultiSigAccTransfer(cmd *cobra.Command, args []string) {
return
}
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
//将字符转权重转换成uint64的值
var weights []uint64
var totalweight uint64
......@@ -182,10 +187,16 @@ func createMultiSigAccTransfer(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, err)
return
}
dailylimitInt64, err := types.FormatFloatDisplay2Value(dailylimit, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.dailylimit"))
return
}
symboldailylimit := &mty.SymbolDailyLimit{
Symbol: symbol,
Execer: execer,
DailyLimit: uint64(math.Trunc((dailylimit+0.0000001)*1e4)) * 1e4,
DailyLimit: uint64(dailylimitInt64),
}
params := &mty.MultiSigAccCreate{
......@@ -415,16 +426,26 @@ func createMultiSigAccDailyLimitModifyTransfer(cmd *cobra.Command, args []string
execer, _ := cmd.Flags().GetString("execer")
symbol, _ := cmd.Flags().GetString("symbol")
dailylimit, _ := cmd.Flags().GetFloat64("daily_limit")
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
err := isValidDailylimit(dailylimit)
err = isValidDailylimit(dailylimit)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
dailylimitInt64, err := types.FormatFloatDisplay2Value(dailylimit, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.dailylimit"))
return
}
assetsDailyLimit := &mty.SymbolDailyLimit{
Symbol: symbol,
Execer: execer,
DailyLimit: uint64(math.Trunc((dailylimit+0.0000001)*1e4)) * 1e4,
DailyLimit: uint64(dailylimitInt64),
}
params := &mty.MultiSigAccOperate{
MultiSigAccAddr: multiSigAddr,
......@@ -520,9 +541,19 @@ func createMultiSigAccTransferIn(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, types.ErrAmount)
return
}
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
params := &mty.MultiSigExecTransferTo{
Symbol: symbol,
Amount: int64(math.Trunc((amount+0.0000001)*1e4)) * 1e4,
Amount: amountInt64,
Note: note,
Execname: execer,
To: to,
......@@ -576,9 +607,19 @@ func createMultiSigAccTransferOut(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, types.ErrAmount)
return
}
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
params := &mty.MultiSigExecTransferFrom{
Symbol: symbol,
Amount: int64(math.Trunc((amount+0.0000001)*1e4)) * 1e4,
Amount: amountInt64,
Note: note,
Execname: execer,
From: from,
......
......@@ -88,9 +88,7 @@ func addPublishEventFlags(cmd *cobra.Command) {
}
func publishEvent(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
if err != nil {
fmt.Printf("publishEvent get rpc addr Error: %v", err)
......@@ -130,7 +128,7 @@ func publishEvent(cmd *cobra.Command, args []string) {
}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(oraclety.OracleX),
Execer: types.GetExecName(oraclety.OracleX, paraName),
ActionName: oraclety.CreateEventPublishTx,
Payload: []byte(fmt.Sprintf("{\"type\":\"%s\",\"subType\":\"%s\",\"time\":%d, \"content\":\"%s\", \"introduction\":\"%s\"}", ty, subType, t.Unix(), content, introduction)),
}
......@@ -160,9 +158,7 @@ func addAbortPublishEventFlags(cmd *cobra.Command) {
}
func abortPublishEvent(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
if err != nil {
fmt.Printf("abortPublishEvent rpc_addr Error: %v", err)
......@@ -175,7 +171,7 @@ func abortPublishEvent(cmd *cobra.Command, args []string) {
}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(oraclety.OracleX),
Execer: types.GetExecName(oraclety.OracleX, paraName),
ActionName: oraclety.CreateAbortEventPublishTx,
Payload: []byte(fmt.Sprintf("{\"eventID\":\"%s\"}", eventID)),
}
......@@ -219,9 +215,7 @@ func addPrePublishResultFlags(cmd *cobra.Command) {
}
func prePublishResult(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
if err != nil {
fmt.Printf("prePublishResult rpc_laddr Error: %v", err)
......@@ -244,7 +238,7 @@ func prePublishResult(cmd *cobra.Command, args []string) {
}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(oraclety.OracleX),
Execer: types.GetExecName(oraclety.OracleX, paraName),
ActionName: oraclety.CreatePrePublishResultTx,
Payload: []byte(fmt.Sprintf("{\"eventID\":\"%s\", \"source\":\"%s\", \"result\":\"%s\"}", eventID, source, result)),
}
......@@ -274,9 +268,7 @@ func addAbortPrePubResultFlags(cmd *cobra.Command) {
}
func abortPrePubResult(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
if err != nil {
fmt.Printf("abortPrePubResult rpc_laddr Error: %v", err)
......@@ -289,7 +281,7 @@ func abortPrePubResult(cmd *cobra.Command, args []string) {
}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(oraclety.OracleX),
Execer: types.GetExecName(oraclety.OracleX, paraName),
ActionName: oraclety.CreateAbortResultPrePublishTx,
Payload: []byte(fmt.Sprintf("{\"eventID\":\"%s\"}", eventID)),
}
......@@ -333,9 +325,7 @@ func addPublishResultFlags(cmd *cobra.Command) {
}
func publishResult(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
if err != nil {
fmt.Printf("publishResult rpc_laddr Error: %v", err)
......@@ -358,7 +348,7 @@ func publishResult(cmd *cobra.Command, args []string) {
}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(oraclety.OracleX),
Execer: types.GetExecName(oraclety.OracleX, paraName),
ActionName: oraclety.CreateResultPublishTx,
Payload: []byte(fmt.Sprintf("{\"eventID\":\"%s\", \"source\":\"%s\", \"result\":\"%s\"}", eventID, source, result)),
}
......
......@@ -7,10 +7,12 @@ package commands
import (
"encoding/hex"
"fmt"
"math"
"os"
"strings"
cmdtypes "github.com/33cn/chain33/system/dapp/commands/types"
"github.com/pkg/errors"
"github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types"
"github.com/33cn/chain33/system/dapp/commands"
......@@ -114,15 +116,21 @@ func createAssetWithdraw(cmd *cobra.Command, args []string) {
}
func createAssetTx(cmd *cobra.Command, isWithdraw bool) (string, error) {
title, _ := cmd.Flags().GetString("title")
//这里cfg除了里面FormatTx需要外,没其他作用,平行链执行器需要的参数已经填好了,这里title就是默认空就可以,支持主链构建平行链交易
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return "", err
}
amount, _ := cmd.Flags().GetFloat64("amount")
if amount < 0 {
return "", types.ErrAmount
}
amountInt64 := int64(math.Trunc((amount+0.0000001)*1e4)) * 1e4
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return "", err
}
toAddr, _ := cmd.Flags().GetString("to")
note, _ := cmd.Flags().GetString("note")
......@@ -133,7 +141,6 @@ func createAssetTx(cmd *cobra.Command, isWithdraw bool) (string, error) {
fmt.Fprintln(os.Stderr, "title is not right, title format like `user.p.guodun.`")
return "", types.ErrInvalidParam
}
execName := paraName + pt.ParaX
param := types.CreateTx{
To: toAddr,
......@@ -143,9 +150,9 @@ func createAssetTx(cmd *cobra.Command, isWithdraw bool) (string, error) {
IsWithdraw: isWithdraw,
IsToken: false,
TokenSymbol: symbol,
ExecName: execName,
ExecName: types.GetExecName(pt.ParaX, paraName),
}
tx, err := pt.CreateRawAssetTransferTx(cfg, &param)
tx, err := pt.CreateRawAssetTransferTxExt(cfg.ChainID, cfg.MinTxFeeRate, &param)
if err != nil {
return "", err
}
......@@ -272,12 +279,22 @@ func createCrossAssetTransfer(cmd *cobra.Command, args []string) {
note, _ := cmd.Flags().GetString("note")
symbol, _ := cmd.Flags().GetString("symbol")
amount, _ := cmd.Flags().GetFloat64("amount")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
if amount < 0 {
fmt.Fprintln(os.Stderr, "amount < 0")
return
}
amountInt64 := int64(math.Trunc((amount+0.0000001)*1e4)) * 1e4
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
paraName, _ := cmd.Flags().GetString("paraName")
if !strings.HasPrefix(paraName, "user.p") {
......@@ -299,10 +316,9 @@ func createCrossAssetTransfer(cmd *cobra.Command, args []string) {
Payload: types.MustPBToJSON(&config),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, &res)
_, err := ctx.RunResult()
_, err = ctx.RunResult()
if err != nil {
fmt.Println(err)
return
......@@ -358,14 +374,25 @@ func createNodeJoinTx(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, "paraName is not right, paraName format like `user.p.guodun.`")
return
}
payload := &pt.ParaNodeAddrConfig{Title: paraName, Op: 1, Addr: opAddr, CoinsFrozen: int64(math.Trunc((coins+0.0000001)*1e4)) * 1e4}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
coinsInt64, err := types.FormatFloatDisplay2Value(coins, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.coins"))
return
}
payload := &pt.ParaNodeAddrConfig{Title: paraName, Op: 1, Addr: opAddr, CoinsFrozen: coinsInt64}
params := &rpctypes.CreateTxIn{
Execer: getRealExecName(paraName, pt.ParaX),
ActionName: "NodeConfig",
Payload: types.MustPBToJSON(payload),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, nil)
ctx.RunWithoutMarshal()
}
......@@ -896,14 +923,25 @@ func nodeGroupApply(cmd *cobra.Command, args []string) {
return
}
payload := &pt.ParaNodeGroupConfig{Title: paraName, Op: 1, Addrs: addrs, BlsPubKeys: blspubs, CoinsFrozen: int64(math.Trunc((coins+0.0000001)*1e4)) * 1e4}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
coinsInt64, err := types.FormatFloatDisplay2Value(coins, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.coins"))
return
}
payload := &pt.ParaNodeGroupConfig{Title: paraName, Op: 1, Addrs: addrs, BlsPubKeys: blspubs, CoinsFrozen: coinsInt64}
params := &rpctypes.CreateTxIn{
Execer: getRealExecName(paraName, pt.ParaX),
ActionName: "NodeGroupConfig",
Payload: types.MustPBToJSON(payload),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, nil)
ctx.RunWithoutMarshal()
}
......@@ -926,15 +964,24 @@ func nodeGroupApprove(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, "paraName is not right, paraName format like `user.p.guodun.`")
return
}
payload := &pt.ParaNodeGroupConfig{Title: paraName, Op: 2, Id: id, CoinsFrozen: int64(math.Trunc((coins+0.0000001)*1e4)) * 1e4}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
coinsInt64, err := types.FormatFloatDisplay2Value(coins, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.coins"))
return
}
payload := &pt.ParaNodeGroupConfig{Title: paraName, Op: 2, Id: id, CoinsFrozen: coinsInt64}
params := &rpctypes.CreateTxIn{
Execer: getRealExecName(paraName, pt.ParaX),
ActionName: "NodeGroupConfig",
Payload: types.MustPBToJSON(payload),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, nil)
ctx.RunWithoutMarshal()
}
......@@ -997,14 +1044,24 @@ func nodeGroupModify(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, "paraName is not right, paraName format like `user.p.guodun.`")
return
}
payload := &pt.ParaNodeGroupConfig{Title: paraName, Op: 4, CoinsFrozen: int64(math.Trunc((coins+0.0000001)*1e4)) * 1e4}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
coinsInt64, err := types.FormatFloatDisplay2Value(coins, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.coins"))
return
}
payload := &pt.ParaNodeGroupConfig{Title: paraName, Op: 4, CoinsFrozen: coinsInt64}
params := &rpctypes.CreateTxIn{
Execer: getRealExecName(paraName, pt.ParaX),
ActionName: "NodeGroupConfig",
Payload: types.MustPBToJSON(payload),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, nil)
ctx.RunWithoutMarshal()
}
......
......@@ -217,6 +217,11 @@ func createRawCommitTx(cfg *types.Chain33Config, commit *ParacrossCommitAction,
// CreateRawAssetTransferTx create asset transfer tx
func CreateRawAssetTransferTx(cfg *types.Chain33Config, param *types.CreateTx) (*types.Transaction, error) {
return CreateRawAssetTransferTxExt(cfg.GetChainID(), cfg.GetMinTxFeeRate(), param)
}
// CreateRawAssetTransferTxExt create asset transfer tx
func CreateRawAssetTransferTxExt(chainID int32, minFee int64, param *types.CreateTx) (*types.Transaction, error) {
// 跨链交易需要在主链和平行链上执行, 所以应该可以在主链和平行链上构建
if !types.IsParaExecName(param.GetExecName()) {
tlog.Error("CreateRawAssetTransferTx", "exec", param.GetExecName())
......@@ -235,13 +240,13 @@ func CreateRawAssetTransferTx(cfg *types.Chain33Config, param *types.CreateTx) (
transfer.Value = v
transfer.Ty = ParacrossActionAssetWithdraw
}
tx := &types.Transaction{
rawtx := &types.Transaction{
Execer: []byte(param.GetExecName()),
Payload: types.Encode(transfer),
To: address.ExecAddress(param.GetExecName()),
Fee: param.Fee,
}
tx, err := types.FormatTx(cfg, param.GetExecName(), tx)
tx, err := types.FormatTxExt(chainID, true, minFee, param.GetExecName(), rawtx)
if err != nil {
return nil, err
}
......
......@@ -97,14 +97,12 @@ func addPokerbullContinueFlags(cmd *cobra.Command) {
}
func pokerbullContinue(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
gameID, _ := cmd.Flags().GetString("gameID")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.PokerBullX),
Execer: types.GetExecName(pkt.PokerBullX, paraName),
ActionName: pkt.CreateContinueTx,
Payload: []byte(fmt.Sprintf("{\"gameId\":\"%s\"}", gameID)),
}
......@@ -131,14 +129,12 @@ func addPokerbullQuitFlags(cmd *cobra.Command) {
}
func pokerbullQuit(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
gameID, _ := cmd.Flags().GetString("gameID")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pkt.PokerBullX),
Execer: types.GetExecName(pkt.PokerBullX, paraName),
ActionName: pkt.CreateQuitTx,
Payload: []byte(fmt.Sprintf("{\"gameId\":\"%s\"}", gameID)),
}
......
......@@ -14,6 +14,8 @@ import (
"strconv"
"time"
"github.com/33cn/chain33/common/address"
"github.com/33cn/chain33/common/crypto"
"github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types"
......@@ -219,19 +221,18 @@ func addNodeFlags(cmd *cobra.Command) {
}
func addNode(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
pubkey, _ := cmd.Flags().GetString("pubkey")
power, _ := cmd.Flags().GetInt64("power")
value := &vt.QbftNodeAction_Node{Node: &vt.QbftNode{PubKey: pubkey, Power: power}}
action := &vt.QbftNodeAction{Value: value, Ty: vt.QbftNodeActionUpdate}
tx := &types.Transaction{Payload: types.Encode(action)}
tx, err := types.FormatTx(cfg, vt.QbftNodeX, tx)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
tx := &types.Transaction{
Payload: types.Encode(action),
Nonce: rand.Int63(),
Execer: []byte(vt.QbftNodeX),
}
tx.To = address.ExecAddress(string(tx.Execer))
txHex := types.Encode(tx)
fmt.Println(hex.EncodeToString(txHex))
}
......
......@@ -360,14 +360,14 @@ func (b *btcdClient) GetTransaction(hash string) (*ty.BtcTransaction, error) {
for index, in := range tx.Vin {
var v ty.Vin
// v.Address = in.
v.Value = uint64(in.Vout) * 1e8
v.Value = uint64(float64(in.Vout) * coinsPrecision)
vin[index] = &v
}
btxTx.Vin = vin
vout := make([]*ty.Vout, len(tx.Vout))
for index, in := range tx.Vout {
var out ty.Vout
out.Value = uint64(in.Value) * 1e8
out.Value = uint64(in.Value * coinsPrecision)
out.Address = in.ScriptPubKey.Addresses[0]
vout[index] = &out
}
......
......@@ -12,6 +12,7 @@ var (
currentBtcBlockheightKey = []byte("000007bc077cc540821f06280c4c2f04e036931f21ea3b1bf509b972cbbef5ca")
firstHeaderKey = []byte("1e1ffda1446d62a96b7ba9347a35ecdb1fad2379f35041d32e82a7b97646b9ff")
privateKey = []byte("privateKey-relayd")
coinsPrecision = 1e8
)
type latestBlock struct {
......
......@@ -390,28 +390,39 @@ func addExchangeFlags(cmd *cobra.Command) {
}
func relayOrder(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
oper, _ := cmd.Flags().GetUint32("operation")
coin, _ := cmd.Flags().GetString("coin")
coinamount, _ := cmd.Flags().GetFloat64("coin_amount")
coinaddr, _ := cmd.Flags().GetString("coin_addr")
coinwait, _ := cmd.Flags().GetUint32("coin_wait")
btyamount, _ := cmd.Flags().GetFloat64("bty_amount")
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
if coinwait == 0 {
coinwait = 1
}
btyUInt64 := uint64(btyamount * 1e4)
coinUInt64 := uint64(coinamount * 1e4)
btyInt64, err := types.FormatFloatDisplay2Value(btyamount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.btyamount"))
return
}
coinInt64, err := types.FormatFloatDisplay2Value(coinamount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.coinamount"))
return
}
params := &ty.RelayCreate{
Operation: oper,
XAmount: coinUInt64 * 1e4,
XAmount: uint64(coinInt64),
XCoin: coin,
XAddr: coinaddr,
XBlockWaits: coinwait,
LocalCoinAmount: btyUInt64 * 1e4,
LocalCoinAmount: uint64(btyInt64),
}
payLoad, err := json.Marshal(params)
......@@ -424,12 +435,11 @@ func relayOrder(cmd *cobra.Command, args []string) {
}
func createTx(cmd *cobra.Command, payLoad []byte, action string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(ty.RelayX),
Execer: types.GetExecName(ty.RelayX, paraName),
ActionName: action,
Payload: payLoad,
}
......
......@@ -21,7 +21,7 @@ import (
const (
lockingTime = 12 * time.Hour //as currently one BTC tx may need wait quite long time
lockBtcHeight = 12 * 6
lockBtyAmount = 100 * 1e8
lockBtyAmount = 100 //coins
)
type relayLog struct {
......@@ -151,6 +151,7 @@ func (action *relayDB) create(order *ty.RelayCreate) (*types.Receipt, error) {
var receipt *types.Receipt
var err error
cfg := action.api.GetConfig()
accDb, err := action.createAccount(order.LocalCoinExec, order.LocalCoinSymbol)
if err != nil {
return nil, errors.Wrapf(err, "relay create,exec=%s,sym=%s", order.LocalCoinExec, order.LocalCoinSymbol)
......@@ -164,7 +165,7 @@ func (action *relayDB) create(order *ty.RelayCreate) (*types.Receipt, error) {
}
} else {
receipt, err = accDb.ExecFrozen(action.fromAddr, action.execAddr, int64(lockBtyAmount))
receipt, err = accDb.ExecFrozen(action.fromAddr, action.execAddr, lockBtyAmount*cfg.GetCoinPrecision())
if err != nil {
relaylog.Error("account.ExecFrozen relay ", "addrFrom", action.fromAddr, "execAddr", action.execAddr, "amount", lockBtyAmount)
return nil, err
......@@ -270,6 +271,7 @@ func (action *relayDB) revokeCreate(revoke *ty.RelayRevoke) (*types.Receipt, err
return nil, ty.ErrRelayReturnAddr
}
cfg := action.api.GetConfig()
accDb, err := action.createAccount(order.LocalCoinExec, order.LocalCoinSymbol)
if err != nil {
return nil, errors.Wrapf(err, "relay revokeCreate,exec=%s,sym=%s", order.LocalCoinExec, order.LocalCoinSymbol)
......@@ -290,7 +292,7 @@ func (action *relayDB) revokeCreate(revoke *ty.RelayRevoke) (*types.Receipt, err
return nil, err
}
receiptTransfer, err = accDb.ExecTransferFrozen(order.CreaterAddr, order.AcceptAddr, action.execAddr, int64(lockBtyAmount))
receiptTransfer, err = accDb.ExecTransferFrozen(order.CreaterAddr, order.AcceptAddr, action.execAddr, lockBtyAmount*cfg.GetCoinPrecision())
if err != nil {
relaylog.Error("revokeAccept", "from", order.AcceptAddr, "to", order.CreaterAddr, "execAddr", action.execAddr, "amount", lockBtyAmount)
return nil, err
......@@ -340,9 +342,10 @@ func (action *relayDB) accept(accept *ty.RelayAccept) (*types.Receipt, error) {
return nil, errors.Wrapf(err, "relay accept,exec=%s,sym=%s", order.LocalCoinExec, order.LocalCoinSymbol)
}
cfg := action.api.GetConfig()
var receipt *types.Receipt
if order.Operation == ty.RelayOrderBuy {
receipt, err = accDb.ExecFrozen(action.fromAddr, action.execAddr, int64(lockBtyAmount))
receipt, err = accDb.ExecFrozen(action.fromAddr, action.execAddr, lockBtyAmount*cfg.GetCoinPrecision())
if err != nil {
relaylog.Error("relay accept frozen fail ", "addrFrom", action.fromAddr, "execAddr", action.execAddr, "amount", lockBtyAmount)
return nil, err
......@@ -412,6 +415,7 @@ func (action *relayDB) revokeAccept(revoke *ty.RelayRevoke) (*types.Receipt, err
return nil, ty.ErrRelayOrderFinished
}
cfg := action.api.GetConfig()
err = action.checkRevokeOrder(order)
if err != nil {
return nil, err
......@@ -438,7 +442,7 @@ func (action *relayDB) revokeAccept(revoke *ty.RelayRevoke) (*types.Receipt, err
var receiptTransfer *types.Receipt
if order.Operation == ty.RelayOrderBuy {
receiptTransfer, err = accDb.ExecTransferFrozen(order.AcceptAddr, order.CreaterAddr, action.execAddr, int64(lockBtyAmount))
receiptTransfer, err = accDb.ExecTransferFrozen(order.AcceptAddr, order.CreaterAddr, action.execAddr, lockBtyAmount*cfg.GetCoinPrecision())
if err != nil {
relaylog.Error("revokeAccept", "from", order.AcceptAddr, "to", order.CreaterAddr, "execAddr", action.execAddr, "amount", lockBtyAmount)
return nil, err
......@@ -543,6 +547,7 @@ func (action *relayDB) verifyTx(verify *ty.RelayVerify) (*types.Receipt, error)
return nil, ty.ErrRelayOrderOnSell
}
cfg := action.api.GetConfig()
err = action.btc.verifyBtcTx(verify, order)
if err != nil {
return nil, err
......@@ -571,14 +576,14 @@ func (action *relayDB) verifyTx(verify *ty.RelayVerify) (*types.Receipt, error)
var receiptTransfer *types.Receipt
if order.Operation == ty.RelayOrderBuy {
receiptTransfer, err = accDb.ExecActive(order.AcceptAddr, action.execAddr, int64(lockBtyAmount))
receiptTransfer, err = accDb.ExecActive(order.AcceptAddr, action.execAddr, lockBtyAmount*cfg.GetCoinPrecision())
if err != nil {
relaylog.Error("verify exec active", "from", order.AcceptAddr, "amount", lockBtyAmount)
return nil, err
}
} else {
receiptTransfer, err = accDb.ExecActive(order.CreaterAddr, action.execAddr, int64(lockBtyAmount))
receiptTransfer, err = accDb.ExecActive(order.CreaterAddr, action.execAddr, lockBtyAmount*cfg.GetCoinPrecision())
if err != nil {
relaylog.Error("verify exec active", "from", order.CreaterAddr, "amount", lockBtyAmount)
return nil, err
......
......@@ -10,6 +10,9 @@ import (
"fmt"
"os"
cmdtypes "github.com/33cn/chain33/system/dapp/commands/types"
"github.com/pkg/errors"
"github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types"
"github.com/33cn/chain33/types"
......@@ -92,9 +95,14 @@ func addBindMinerFlags(cmd *cobra.Command) {
}
func bindMiner(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
bindAddr, _ := cmd.Flags().GetString("bind_addr")
originAddr, _ := cmd.Flags().GetString("origin_addr")
//c, _ := crypto.New(types.GetSignName(wallet.SignType))
......@@ -109,7 +117,8 @@ func bindMiner(cmd *cobra.Command, args []string) {
ta.Value = &ty.TicketAction_Tbind{Tbind: tBind}
ta.Ty = ty.TicketActionBind
tx, err := types.CreateFormatTx(cfg, "ticket", types.Encode(ta))
rawTx := &types.Transaction{Payload: types.Encode(ta)}
tx, err := types.FormatTxExt(cfg.ChainID, len(paraName) > 0, cfg.MinTxFeeRate, ty.TicketX, rawTx)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
......
......@@ -539,10 +539,19 @@ func tokenMint(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
symbol, _ := cmd.Flags().GetString("symbol")
amount, _ := cmd.Flags().GetFloat64("amount")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
params := &tokenty.TokenMint{
Symbol: symbol,
Amount: int64((amount+0.000001)*1e4) * 1e4,
Amount: amountInt64,
}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "token.CreateRawTokenMintTx", params, nil)
......@@ -574,10 +583,19 @@ func tokenBurn(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
symbol, _ := cmd.Flags().GetString("symbol")
amount, _ := cmd.Flags().GetFloat64("amount")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
params := &tokenty.TokenBurn{
Symbol: symbol,
Amount: int64((amount+0.000001)*1e4) * 1e4,
Amount: amountInt64,
}
ctx := jsonclient.NewRPCCtx(rpcLaddr, "token.CreateRawTokenBurnTx", params, nil)
......
......@@ -526,17 +526,30 @@ func tokenSell(cmd *cobra.Command, args []string) {
if exec == "" {
exec = "token"
}
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
priceInt64 := int64(price * 1e4)
feeInt64 := int64(fee * 1e4)
priceInt64, err := types.FormatFloatDisplay2Value(price, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.price"))
return
}
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
totalInt64 := int64(total * 1e8 / 1e6)
params := &pty.TradeSellTx{
TokenSymbol: symbol,
AmountPerBoardlot: 1e6,
MinBoardlot: min,
PricePerBoardlot: priceInt64 * 1e4,
PricePerBoardlot: priceInt64,
TotalBoardlot: totalInt64,
Fee: feeInt64 * 1e4,
Fee: feeInt64,
AssetExec: exec,
PriceExec: priceExec,
PriceSymbol: priceSymbol,
......@@ -568,14 +581,23 @@ func addTokenBuyFlags(cmd *cobra.Command) {
func tokenBuy(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
sellID, _ := cmd.Flags().GetString("sell_id")
fee, _ := cmd.Flags().GetFloat64("fee")
count, _ := cmd.Flags().GetInt64("count")
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
feeInt64 := int64(fee * 1e4)
fee, _ := cmd.Flags().GetFloat64("fee")
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
params := &pty.TradeBuyTx{
SellID: sellID,
BoardlotCnt: count,
Fee: feeInt64 * 1e4,
Fee: feeInt64,
}
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "trade.CreateRawTradeBuyTx", params, nil)
......@@ -603,12 +625,22 @@ func addTokenSellRevokeFlags(cmd *cobra.Command) {
func tokenSellRevoke(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
sellID, _ := cmd.Flags().GetString("sell_id")
fee, _ := cmd.Flags().GetFloat64("fee")
feeInt64 := int64(fee * 1e4)
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
fee, _ := cmd.Flags().GetFloat64("fee")
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
params := &pty.TradeRevokeTx{
SellID: sellID,
Fee: feeInt64 * 1e4,
Fee: feeInt64,
}
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "trade.CreateRawTradeRevokeTx", params, nil)
......@@ -662,16 +694,30 @@ func tokenBuyLimit(cmd *cobra.Command, args []string) {
exec = "token"
}
priceInt64 := int64(price * 1e4)
feeInt64 := int64(fee * 1e4)
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
priceInt64, err := types.FormatFloatDisplay2Value(price, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.price"))
return
}
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
totalInt64 := int64(total * 1e8 / 1e6)
params := &pty.TradeBuyLimitTx{
TokenSymbol: symbol,
AmountPerBoardlot: 1e6,
MinBoardlot: min,
PricePerBoardlot: priceInt64 * 1e4,
PricePerBoardlot: priceInt64,
TotalBoardlot: totalInt64,
Fee: feeInt64 * 1e4,
Fee: feeInt64,
AssetExec: exec,
PriceExec: priceExec,
PriceSymbol: priceSymbol,
......@@ -703,14 +749,22 @@ func addSellMarketFlags(cmd *cobra.Command) {
func sellMarket(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
buyID, _ := cmd.Flags().GetString("buy_id")
fee, _ := cmd.Flags().GetFloat64("fee")
count, _ := cmd.Flags().GetInt64("count")
feeInt64 := int64(fee * 1e4)
cfg, err := commandtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
fee, _ := cmd.Flags().GetFloat64("fee")
feeInt64, err := types.FormatFloatDisplay2Value(fee, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.fee"))
return
}
params := &pty.TradeSellMarketTx{
BuyID: buyID,
BoardlotCnt: count,
Fee: feeInt64 * 1e4,
Fee: feeInt64,
}
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "trade.CreateRawTradeSellMarketTx", params, nil)
......
......@@ -8,10 +8,12 @@ import (
"bytes"
"encoding/json"
"fmt"
"math"
"os"
"strings"
cmdtypes "github.com/33cn/chain33/system/dapp/commands/types"
"github.com/pkg/errors"
"github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types"
"github.com/spf13/cobra"
......@@ -73,7 +75,7 @@ func checkAmount(amount float64) error {
return nil
}
func getCreateFlags(cmd *cobra.Command) (*pty.UnfreezeCreate, error) {
func getCreateFlags(cmd *cobra.Command, cfg *rpctypes.ChainConfigInfo) (*pty.UnfreezeCreate, error) {
beneficiary, _ := cmd.Flags().GetString("beneficiary")
exec, _ := cmd.Flags().GetString("asset_exec")
symbol, _ := cmd.Flags().GetString("asset_symbol")
......@@ -83,7 +85,11 @@ func getCreateFlags(cmd *cobra.Command) (*pty.UnfreezeCreate, error) {
if err := checkAmount(total); err != nil {
return nil, types.ErrAmount
}
totalInt64 := int64(math.Trunc((total+0.0000001)*1e4)) * 1e4
totalInt64, err := types.FormatFloatDisplay2Value(total, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value"))
return nil, types.ErrAmount
}
unfreeze := &pty.UnfreezeCreate{
StartTime: startTs,
......@@ -112,10 +118,15 @@ func fixAmountCmd() *cobra.Command {
}
func fixAmount(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
create, err := getCreateFlags(cmd)
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
create, err := getCreateFlags(cmd, cfg)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
......@@ -126,7 +137,11 @@ func fixAmount(cmd *cobra.Command, args []string) {
fmt.Fprintln(os.Stderr, err)
return
}
amountInt64 := int64(math.Trunc((amount+0.0000001)*1e4)) * 1e4
amountInt64, err := types.FormatFloatDisplay2Value(amount, cfg.CoinPrecision)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "FormatFloatDisplay2Value.amount"))
return
}
period, _ := cmd.Flags().GetInt64("period")
if period <= 0 {
......@@ -143,12 +158,11 @@ func fixAmount(cmd *cobra.Command, args []string) {
create.MeansOpt = &pty.UnfreezeCreate_FixAmount{FixAmount: &pty.FixAmount{Period: period, Amount: amountInt64}}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pty.UnfreezeX),
Execer: types.GetExecName(pty.UnfreezeX, paraName),
ActionName: "createUnfreeze",
Payload: types.MustPBToJSON(create),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, nil)
ctx.RunWithoutMarshal()
}
......@@ -169,10 +183,15 @@ func leftCmd() *cobra.Command {
}
func left(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
cfg, err := cmdtypes.GetChainConfig(rpcLaddr)
if err != nil {
fmt.Fprintln(os.Stderr, errors.Wrapf(err, "GetChainConfig"))
return
}
create, err := getCreateFlags(cmd)
create, err := getCreateFlags(cmd, cfg)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
......@@ -195,12 +214,11 @@ func left(cmd *cobra.Command, args []string) {
}
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pty.UnfreezeX),
Execer: types.GetExecName(pty.UnfreezeX, paraName),
ActionName: pty.Action_CreateUnfreeze,
Payload: types.MustPBToJSON(create),
}
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", params, nil)
ctx.RunWithoutMarshal()
}
......@@ -254,13 +272,12 @@ func queryWithdrawCmd() *cobra.Command {
}
func withdraw(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
id, _ := cmd.Flags().GetString("id")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pty.UnfreezeX),
Execer: types.GetExecName(pty.UnfreezeX, paraName),
ActionName: pty.Action_WithdrawUnfreeze,
Payload: types.MustPBToJSON(&pty.UnfreezeWithdraw{UnfreezeID: id}),
}
......@@ -271,13 +288,12 @@ func withdraw(cmd *cobra.Command, args []string) {
}
func terminate(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
id, _ := cmd.Flags().GetString("id")
params := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(pty.UnfreezeX),
Execer: types.GetExecName(pty.UnfreezeX, paraName),
ActionName: pty.Action_TerminateUnfreeze,
Payload: types.MustPBToJSON(&pty.UnfreezeTerminate{UnfreezeID: id}),
}
......
......@@ -12,6 +12,8 @@ import (
"strconv"
"time"
"github.com/33cn/chain33/common/address"
"github.com/33cn/chain33/common/crypto"
"github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types"
......@@ -168,8 +170,6 @@ func addNodeFlags(cmd *cobra.Command) {
}
func addNode(cmd *cobra.Command, args []string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
pubkey, _ := cmd.Flags().GetString("pubkey")
power, _ := cmd.Flags().GetInt64("power")
......@@ -180,12 +180,12 @@ func addNode(cmd *cobra.Command, args []string) {
}
value := &vt.ValNodeAction_Node{Node: &vt.ValNode{PubKey: pubkeybyte, Power: power}}
action := &vt.ValNodeAction{Value: value, Ty: vt.ValNodeActionUpdate}
tx := &types.Transaction{Payload: types.Encode(action)}
tx, err = types.FormatTx(cfg, vt.ValNodeX, tx)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
tx := &types.Transaction{
Payload: types.Encode(action),
Nonce: rand.Int63(),
Execer: []byte(vt.ValNodeX),
}
tx.To = address.ExecAddress(string(tx.Execer))
txHex := types.Encode(tx)
fmt.Println(hex.EncodeToString(txHex))
}
......
......@@ -46,12 +46,11 @@ func markRequired(cmd *cobra.Command, params ...string) {
}
func sendCreateTxRPC(cmd *cobra.Command, actionName string, req types.Message) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcAddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
payLoad := types.MustPBToJSON(req)
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(vty.VoteX),
Execer: types.GetExecName(vty.VoteX, paraName),
ActionName: actionName,
Payload: payLoad,
}
......@@ -62,12 +61,11 @@ func sendCreateTxRPC(cmd *cobra.Command, actionName string, req types.Message) {
}
func sendQueryRPC(cmd *cobra.Command, funcName string, req, reply types.Message) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcAddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
payLoad := types.MustPBToJSON(req)
query := &rpctypes.Query4Jrpc{
Execer: cfg.ExecName(vty.VoteX),
Execer: types.GetExecName(vty.VoteX, paraName),
FuncName: funcName,
Payload: payLoad,
}
......
......@@ -397,12 +397,11 @@ func queryRelayerBalance(cmd *cobra.Command, args []string) {
}
func createTx(cmd *cobra.Command, payLoad []byte, action string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
paraName, _ := cmd.Flags().GetString("paraName")
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pm := &types2.CreateTxIn{
Execer: cfg.ExecName(types3.X2ethereumX),
Execer: types.GetExecName(types3.X2ethereumX, paraName),
ActionName: action,
Payload: payLoad,
}
......
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