forked from TrueCloudLab/frostfs-node
parent
20d6132f31
commit
cae50ecb21
|
@ -1,11 +1,15 @@
|
||||||
package morph
|
package morph
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"text/tabwriter"
|
||||||
|
|
||||||
|
commonCmd "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/internal/common"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/io"
|
"github.com/nspcc-dev/neo-go/pkg/io"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/rpcclient/invoker"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpcclient/policy"
|
"github.com/nspcc-dev/neo-go/pkg/rpcclient/policy"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract/callflag"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/callflag"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm/emit"
|
"github.com/nspcc-dev/neo-go/pkg/vm/emit"
|
||||||
|
@ -52,3 +56,32 @@ func setPolicyCmd(cmd *cobra.Command, args []string) error {
|
||||||
|
|
||||||
return wCtx.awaitTx()
|
return wCtx.awaitTx()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func dumpPolicyCmd(cmd *cobra.Command, _ []string) error {
|
||||||
|
c, err := getN3Client(viper.GetViper())
|
||||||
|
commonCmd.ExitOnErr(cmd, "can't create N3 client:", err)
|
||||||
|
|
||||||
|
inv := invoker.New(c, nil)
|
||||||
|
policyContract := policy.NewReader(inv)
|
||||||
|
|
||||||
|
execFee, err := policyContract.GetExecFeeFactor()
|
||||||
|
commonCmd.ExitOnErr(cmd, "can't get execution fee factor:", err)
|
||||||
|
|
||||||
|
feePerByte, err := policyContract.GetFeePerByte()
|
||||||
|
commonCmd.ExitOnErr(cmd, "can't get fee per byte:", err)
|
||||||
|
|
||||||
|
storagePrice, err := policyContract.GetStoragePrice()
|
||||||
|
commonCmd.ExitOnErr(cmd, "can't get storage price:", err)
|
||||||
|
|
||||||
|
buf := bytes.NewBuffer(nil)
|
||||||
|
tw := tabwriter.NewWriter(buf, 0, 2, 2, ' ', 0)
|
||||||
|
|
||||||
|
_, _ = tw.Write([]byte(fmt.Sprintf("Execution Fee Factor:\t%d (int)\n", execFee)))
|
||||||
|
_, _ = tw.Write([]byte(fmt.Sprintf("Fee Per Byte:\t%d (int)\n", feePerByte)))
|
||||||
|
_, _ = tw.Write([]byte(fmt.Sprintf("Storage Price:\t%d (int)\n", storagePrice)))
|
||||||
|
|
||||||
|
_ = tw.Flush()
|
||||||
|
cmd.Print(buf.String())
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -146,6 +146,15 @@ var (
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dumpPolicy = &cobra.Command{
|
||||||
|
Use: "dump-policy",
|
||||||
|
Short: "Dump FrostFS policy",
|
||||||
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
||||||
|
_ = viper.BindPFlag(endpointFlag, cmd.Flags().Lookup(endpointFlag))
|
||||||
|
},
|
||||||
|
RunE: dumpPolicyCmd,
|
||||||
|
}
|
||||||
|
|
||||||
dumpContractHashesCmd = &cobra.Command{
|
dumpContractHashesCmd = &cobra.Command{
|
||||||
Use: "dump-hashes",
|
Use: "dump-hashes",
|
||||||
Short: "Dump deployed contract hashes",
|
Short: "Dump deployed contract hashes",
|
||||||
|
@ -239,6 +248,7 @@ func init() {
|
||||||
initForceNewEpochCmd()
|
initForceNewEpochCmd()
|
||||||
initRemoveNodesCmd()
|
initRemoveNodesCmd()
|
||||||
initSetPolicyCmd()
|
initSetPolicyCmd()
|
||||||
|
initDumpPolicyCmd()
|
||||||
initDumpContractHashesCmd()
|
initDumpContractHashesCmd()
|
||||||
initDumpNetworkConfigCmd()
|
initDumpNetworkConfigCmd()
|
||||||
initSetConfigCmd()
|
initSetConfigCmd()
|
||||||
|
@ -341,6 +351,11 @@ func initSetPolicyCmd() {
|
||||||
setPolicy.Flags().String(localDumpFlag, "", "Path to the blocks dump file")
|
setPolicy.Flags().String(localDumpFlag, "", "Path to the blocks dump file")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initDumpPolicyCmd() {
|
||||||
|
RootCmd.AddCommand(dumpPolicy)
|
||||||
|
dumpPolicy.Flags().StringP(endpointFlag, "r", "", "N3 RPC node endpoint")
|
||||||
|
}
|
||||||
|
|
||||||
func initRemoveNodesCmd() {
|
func initRemoveNodesCmd() {
|
||||||
RootCmd.AddCommand(removeNodes)
|
RootCmd.AddCommand(removeNodes)
|
||||||
removeNodes.Flags().String(alphabetWalletsFlag, "", "Path to alphabet wallets dir")
|
removeNodes.Flags().String(alphabetWalletsFlag, "", "Path to alphabet wallets dir")
|
||||||
|
|
Loading…
Reference in New Issue