commands

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2018 License: LGPL-3.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultPower = 10
	DefaultIsCA  = true
)
View Source
const SUBPATH = "/.subchain"

Variables

View Source
var (
	ExamCommand = cli.Command{
		Name:   "exam",
		Action: exam,
		Flags: []cli.Flag{
			cli.Int64Flag{
				Name:  "start",
				Value: 0,
			},
		},
	}
	InitCommand = cli.Command{
		Name:   "initial",
		Action: initial,
		Flags: []cli.Flag{
			cli.Int64Flag{
				Name:  "start",
				Value: 0,
			},
		},
	}
)
View Source
var (
	TransferBenchCommand = cli.Command{
		Name:   "bench",
		Action: transferBench,
		Flags: []cli.Flag{
			cli.Int64Flag{
				Name:  "start",
				Value: 0,
			},
			cli.Int64Flag{
				Name:  "times",
				Value: 1,
			},
		},
	}

	AnnCoinBenchCommand = cli.Command{
		Name:   "benchcoin",
		Action: benchAnnCoin,
		Flags:  []cli.Flag{},
	}
)
View Source
var (
	//AccountCommands defines a more git-like subcommand system
	AccountCommands = cli.Command{
		Name:     "account",
		Usage:    "operations for account",
		Category: "Account",
		Subcommands: []cli.Command{
			{
				Name:     "generate",
				Action:   generatePrivPubAddr,
				Usage:    "generate new private-pub key pair",
				Category: "Account",
			},
		},
	}
)
View Source
var (

	//ContractCommands defines a more git-like subcommand system
	EVMCommands = cli.Command{
		Name:     "evm",
		Usage:    "operations for evm contract",
		Category: "Contract",
		Subcommands: []cli.Command{
			{
				Name:   "create",
				Usage:  "create a new contract",
				Action: createContract,
				Flags: []cli.Flag{
					anntoolFlags.addr,
					anntoolFlags.pwd,
					anntoolFlags.bytecode,
					anntoolFlags.privkey,
					anntoolFlags.nonce,
					anntoolFlags.abif,
					anntoolFlags.callf,
				},
			},
			{
				Name:   "execute",
				Usage:  "execute a new contract",
				Action: executeContract,
				Flags: []cli.Flag{
					anntoolFlags.addr,
					anntoolFlags.pwd,
					anntoolFlags.payload,
					anntoolFlags.privkey,
					anntoolFlags.nonce,
					anntoolFlags.abistr,
					anntoolFlags.callstr,
					anntoolFlags.to,
					anntoolFlags.abif,
					anntoolFlags.callf,
				},
			},
			{
				Name:   "read",
				Usage:  "read a contract",
				Action: readContract,
				Flags: []cli.Flag{
					anntoolFlags.addr,
					anntoolFlags.pwd,
					anntoolFlags.payload,
					anntoolFlags.privkey,
					anntoolFlags.nonce,
					anntoolFlags.abistr,
					anntoolFlags.callstr,
					anntoolFlags.to,
					anntoolFlags.abif,
					anntoolFlags.callf,
				},
			},
			{
				Name:   "exist",
				Usage:  "check if a contract has been deployed",
				Action: existContract,
				Flags: []cli.Flag{
					anntoolFlags.callf,
				},
			},
		},
	}
)
View Source
var (
	EventCommands = cli.Command{
		Name:     "event",
		Usage:    "trigger the inter-chain event system",
		Category: "Event",
		Subcommands: []cli.Command{
			{
				Name:   "upload-code",
				Usage:  "upload a segment of lisp/lua to process event data for a particular organization",
				Action: ea.UploadCode,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name:  "code",
						Usage: "code segment",
						Value: "",
					},
					cli.StringFlag{
						Name:  "ownerid",
						Usage: "chain id of the code owner",
						Value: "",
					},
				},
			},
			{
				Name:   "request",
				Usage:  "",
				Action: ea.Request,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name:  "listener",
						Usage: "listener chainID",
						Value: "",
					},
					cli.StringFlag{
						Name:  "source",
						Usage: "event source chainID",
						Value: "",
					},
					cli.StringFlag{
						Name:  "listener_hash",
						Usage: "code hash on the listener chain",
						Value: "",
					},
					cli.StringFlag{
						Name:  "source_hash",
						Usage: "code hash on the source chain",
						Value: "",
					},
				},
			},
			{
				Name:   "unsubscribe",
				Usage:  "",
				Action: ea.Unsubscribe,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name:  "listener",
						Usage: "listener chainID",
						Value: "",
					},
					cli.StringFlag{
						Name:  "source",
						Usage: "event source chainID",
						Value: "",
					},
				},
			},
		},
	}
)
View Source
var (

	//ContractCommands defines a more git-like subcommand system
	IkhofiCommands = cli.Command{
		Name:     "ikhofi",
		Usage:    "operations for ikhofi",
		Category: "Contract",
		Subcommands: []cli.Command{
			{
				Name:   "execute",
				Usage:  "execute a contract",
				Action: execute,
				Flags: []cli.Flag{
					cli.StringFlag{
						Name:  "method",
						Value: "",
					},
					cli.StringFlag{
						Name:  "contractid",
						Value: "",
					},
					anntoolFlags.privkey,
					anntoolFlags.bytecode,
				},
			}, {
				Name:   "query",
				Usage:  "query a contract",
				Action: query,
				Flags: []cli.Flag{
					cli.StringFlag{
						Name:  "method",
						Value: "",
					},
					cli.StringFlag{
						Name:  "contractid",
						Value: "",
					},
					anntoolFlags.privkey,
				},
			},
		},
	}
)
View Source
var (
	InfoCommand = cli.Command{
		Name:  "info",
		Usage: "get annchain info",
		Subcommands: []cli.Command{
			cli.Command{
				Name:   "last_block",
				Action: lastBlockInfo,
			},
			cli.Command{
				Name:   "num_unconfirmed_txs",
				Action: numUnconfirmedTxs,
			},
			cli.Command{
				Name:   "net",
				Action: netInfo,
			},
			cli.Command{
				Name:   "num_archived_blocks",
				Action: numArchivedBlocks,
			},
		},
	}
)
View Source
var (
	InitSubCommands = cli.Command{
		Name:     "initsub",
		Usage:    "init subchain config file and genesis file",
		Category: "Organization",
		Action:   initSubConf,
		Flags: []cli.Flag{
			cli.StringFlag{
				Name:  "configfile",
				Value: "$HOME/appconfig.toml",
			},
			cli.StringFlag{
				Name:  "genesisfile",
				Value: "$HOME/appconfig.toml",
			},
		},
	}
)
View Source
var (
	OrgCommands = cli.Command{
		Name:     "organization",
		Usage:    "commands for organization control",
		Category: "Organization",
		Subcommands: []cli.Command{
			{
				Name:   "create",
				Usage:  "create a organization",
				Action: oa.Create,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name:  "genesisfile",
						Usage: "point the genesis file for the sharding",
						Value: "",
					},
					cli.StringFlag{
						Name:  "configfile",
						Usage: "custom configs for the sharding",
						Value: "",
					},
				},
			},
			{
				Name:   "join",
				Usage:  "join a organization",
				Action: oa.Join,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name:  "orgid",
						Usage: "specify the organization's chain id",
						Value: "",
					},
					cli.StringFlag{
						Name:  "genesisfile",
						Usage: "point the genesis file for the sharding",
						Value: "",
					},
					cli.StringFlag{
						Name:  "configfile",
						Usage: "custom configs for the sharding",
						Value: "",
					},
				},
			},
			{
				Name:   "leave",
				Usage:  "",
				Action: oa.Leave,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name:  "orgid",
						Usage: "specify the organization's chain id",
						Value: "",
					},
				},
			},
		},
	}
)
View Source
var (
	QueryCommands = cli.Command{
		Name:     "query",
		Usage:    "operations for query state",
		Category: "Query",
		Subcommands: []cli.Command{
			{
				Name:   "nonce",
				Usage:  "query account's nonce",
				Action: queryNonce,
				Flags: []cli.Flag{
					anntoolFlags.addr,
				},
			},
			{
				Name:   "balance",
				Usage:  "query account's balance",
				Action: queryBalance,
				Flags: []cli.Flag{
					anntoolFlags.addr,
				},
			},
			{
				Name:   "receipt",
				Usage:  "",
				Action: queryReceipt,
				Flags: []cli.Flag{
					anntoolFlags.hash,
				},
			},
			{
				Name:   "events",
				Usage:  "query events on the node",
				Action: queryEvents,
				Flags:  []cli.Flag{},
			},
			{
				Name:   "event_code",
				Usage:  "",
				Action: queryEventCode,
				Flags: []cli.Flag{
					anntoolFlags.codeHash,
				},
			},
			{
				Name:   "apps",
				Usage:  "query apps on the node",
				Action: queryNodeApps,
				Flags:  []cli.Flag{},
			},
		},
	}
)
View Source
var (
	SignCommand = cli.Command{
		Name:   "sign",
		Action: signCA,
		Usage:  "nodes who want to join a chain must first get a CA signature from one the CA nodes in that chain",
		Flags: []cli.Flag{
			cli.StringFlag{
				Name:  "sec",
				Usage: "CA node's private key",
				Value: "0",
			},
			cli.StringFlag{
				Name:  "pub",
				Value: "0",
				Usage: "pubkeys of the nodes want to join, comma separated",
			},
		},
	}
)
View Source
var (
	SpecialCommands = cli.Command{
		Name:     "special",
		Usage:    "commands for special operations",
		Category: "Special",
		Subcommands: []cli.Command{
			{
				Name:   "change_validator",
				Usage:  "change validator set, promote node up to be a validator, change validator's voting power, change validator's CA status",
				Action: specials.ChangeValidator,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					anntoolFlags.validatorPubkey,
					anntoolFlags.isCA,
					anntoolFlags.power,
				},
			},
			{
				Name:   "remove_validator",
				Usage:  "remove a validator",
				Action: specials.ChangeValidator,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					anntoolFlags.validatorPubkey,
				},
			},
			{
				Name:   "disconnect_peer",
				Usage:  "disconnect a peer and refuse the node to join the network afterwards",
				Action: specials.DisconnectPeer,
				Flags: []cli.Flag{
					anntoolFlags.peerPubkey,
				},
			},
			{
				Name:   "add_refuse_key",
				Usage:  "add a pubkey to refuseList",
				Action: specials.AddRefuseKey,
				Flags: []cli.Flag{
					anntoolFlags.peerPubkey,
				},
			},
			{
				Name:   "delete_refuse_key",
				Usage:  "delete a pubkey from refuseList",
				Action: specials.DeleteRefuseKey,
				Flags: []cli.Flag{
					anntoolFlags.peerPubkey,
				},
			},
			{
				Name:   "list_refuse_key",
				Usage:  "list all refuse key",
				Action: listRefuseKey,
			},
		},
	}
)
View Source
var (
	TxCommands = cli.Command{
		Name:     "tx",
		Usage:    "operations for transaction",
		Category: "Transaction",
		Subcommands: []cli.Command{
			{
				Name:   "send",
				Usage:  "send a transaction",
				Action: sendTx,
				Flags: []cli.Flag{
					anntoolFlags.addr,
					anntoolFlags.pwd,
					anntoolFlags.payload,
					anntoolFlags.privkey,
					anntoolFlags.nonce,
					anntoolFlags.to,
					anntoolFlags.value,
				},
			},
			{
				Name:   "query",
				Usage:  "query transaction execution info",
				Action: txQuery,
				Flags: []cli.Flag{
					cli.StringFlag{
						Name: "txHash",
					},
				},
			},
		},
	}
)
View Source
var (
	VoteCommands = cli.Command{
		Name:     "vote",
		Usage:    "commands for vote channel request",
		Category: "Vote",
		Subcommands: []cli.Command{
			{
				Name:   "request_change_validator",
				Usage:  "make a new request to change validator",
				Action: vote.voteChangeValidator,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name: "validator_pubkey",
					},
					anntoolFlags.power,
					anntoolFlags.isCA,
				},
			},
			{
				Name:   "sign_vote",
				Usage:  "sign a vote request, if disagree sign nil",
				Action: vote.signVote,
				Flags: []cli.Flag{
					anntoolFlags.privkey,
					cli.StringFlag{
						Name: "request_id",
					},
				},
			},
			{
				Name:   "query_votes",
				Usage:  "get all vote channel reqeusts state",
				Action: vote.queryVotes,
			},
			{
				Name:   "execute_vote",
				Usage:  "do the vote request",
				Action: vote.executeVote,
				Flags: []cli.Flag{
					cli.StringFlag{
						Name: "request_id",
					},
				},
			},
		},
	}
)

Functions

func ContractExecute

func ContractExecute(param *ContractParam) (txhash []byte, err error)

func InitLog

func InitLog()

func PathExist

func PathExist(path string) (bool, error)

func PathExists

func PathExists(path string) (bool, error)

Types

type AnntoolFlags

type AnntoolFlags struct {
	// contains filtered or unexported fields
}

type ContractParam

type ContractParam struct {
	ChainID    string
	ContractID string
	MethodName string
	Args       []string
	Privkey    *ecdsa.PrivateKey
	ByteCode   []byte
}

func ParseParam

func ParseParam(method, id, chainID, privkey string) (param ContractParam, err error)

type QueryResult

type QueryResult struct {
	Value string `json:"value"`
	Msg   string `json:"msg"`
}

func ContractQuery

func ContractQuery(param *ContractParam) (result QueryResult, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL