From 49c3ab0828df516869406340c33b5d4e54071677 Mon Sep 17 00:00:00 2001 From: rigelrozanski Date: Fri, 10 Feb 2017 18:02:27 -0500 Subject: [PATCH] addressed ebuchman comments --- cmd/commands/utils.go | 28 ++++++++++++------------- docs/guide/basecoin-basics.md | 8 +++---- docs/guide/example-plugin.md | 19 ++++++++--------- docs/guide/ibc.md | 8 +++---- docs/guide/src/example-plugin/plugin.go | 2 +- 5 files changed, 31 insertions(+), 34 deletions(-) diff --git a/cmd/commands/utils.go b/cmd/commands/utils.go index 1196fe375b..0cbd5c8d76 100644 --- a/cmd/commands/utils.go +++ b/cmd/commands/utils.go @@ -39,27 +39,26 @@ func StripHex(s string) string { return s } +//regex codes for extracting coins from CLI input +var reDenom = regexp.MustCompile("([^\\d\\W]+)") +var reAmt = regexp.MustCompile("(\\d+)") + func ParseCoin(str string) (types.Coin, error) { var coin types.Coin - coins, err := ParseCoins(str) - - if err != nil { - return coin, err - } - - if len(coins) > 0 { - coin = coins[0] + if len(str) > 0 { + amt, err := strconv.Atoi(reAmt.FindString(str)) + if err != nil { + return coin, err + } + denom := reDenom.FindString(str) + coin = types.Coin{denom, int64(amt)} } return coin, nil } -//regex codes from -var reAmt = regexp.MustCompile("(\\d+)") -var reCoin = regexp.MustCompile("([^\\d\\W]+)") - func ParseCoins(str string) (types.Coins, error) { split := strings.Split(str, ",") @@ -67,12 +66,11 @@ func ParseCoins(str string) (types.Coins, error) { for _, el := range split { if len(el) > 0 { - amt, err := strconv.Atoi(reAmt.FindString(el)) + coin, err := ParseCoin(el) if err != nil { return coins, err } - coin := reCoin.FindString(el) - coins = append(coins, types.Coin{coin, int64(amt)}) + coins = append(coins, coin) } } diff --git a/docs/guide/basecoin-basics.md b/docs/guide/basecoin-basics.md index 400136b496..f09213daa9 100644 --- a/docs/guide/basecoin-basics.md +++ b/docs/guide/basecoin-basics.md @@ -91,14 +91,14 @@ The first account is flush with cash, while the second account doesn't exist. Let's send funds from the first account to the second: ``` -basecoin tx send --to 0x1DA7C74F9C219229FD54CC9F7386D5A3839F0090 --amount 10 +basecoin tx send --to 0x1DA7C74F9C219229FD54CC9F7386D5A3839F0090 --amount 10blank ``` By default, the CLI looks for a `priv_validator.json` to sign the transaction with, so this will only work if you are in the `$GOPATH/src/github.com/tendermint/basecoin/data`. To specify a different key, we can use the `--from` flag. -Now if we check the second account, it should have `10` coins! +Now if we check the second account, it should have `10` 'blank' coins! ``` basecoin account 0x1DA7C74F9C219229FD54CC9F7386D5A3839F0090 @@ -107,7 +107,7 @@ basecoin account 0x1DA7C74F9C219229FD54CC9F7386D5A3839F0090 We can send some of these coins back like so: ``` -basecoin tx send --to 0x1B1BE55F969F54064628A63B9559E7C21C925165 --from key2.json --amount 5 +basecoin tx send --to 0x1B1BE55F969F54064628A63B9559E7C21C925165 --from key2.json --amount 5blank ``` Note how we use the `--from` flag to select a different account to send from. @@ -115,7 +115,7 @@ Note how we use the `--from` flag to select a different account to send from. If we try to send too much, we'll get an error: ``` -basecoin tx send --to 0x1B1BE55F969F54064628A63B9559E7C21C925165 --from key2.json --amount 100 +basecoin tx send --to 0x1B1BE55F969F54064628A63B9559E7C21C925165 --from key2.json --amount 100blank ``` See `basecoin tx send --help` for additional details. diff --git a/docs/guide/example-plugin.md b/docs/guide/example-plugin.md index b08f336fb7..28368bf3bb 100644 --- a/docs/guide/example-plugin.md +++ b/docs/guide/example-plugin.md @@ -132,10 +132,9 @@ OPTIONS: --node value Tendermint RPC address (default: "tcp://localhost:46657") --chain_id value ID of the chain for replay protection (default: "test_chain_id") --from value Path to a private key to sign the transaction (default: "key.json") - --amount value Amount of coins to send in the transaction (default: 0) - --coin value Specify a coin denomination (default: "mycoin") + --amount value Coins to send in transaction of the format ,,... (eg: 1btc,2gold,5silver) --gas value The amount of gas for the transaction (default: 0) - --fee value The transaction fee (default: 0) + --fee value Coins for the transaction fee of the format --sequence value Sequence number for the account (default: 0) --valid Set this to make the transaction valid ``` @@ -363,25 +362,25 @@ example-plugin start --in-proc In another window, we can try sending some transactions: ``` -example-plugin tx send --to 0x1B1BE55F969F54064628A63B9559E7C21C925165 --amount 100 --coin gold --chain_id example-chain +example-plugin tx send --to 0x1B1BE55F969F54064628A63B9559E7C21C925165 --amount 100gold --chain_id example-chain ``` -Note the `--coin` and `--chain_id` flags. In the [previous tutorial](basecoin-basics.md), -we didn't need them because we were using the default coin type ("mycoin") and chain ID ("test_chain_id"). -Now that we're using custom values, we need to specify them explicitly on the command line. +Note the `--chain_id` flag. In the [previous tutorial](basecoin-basics.md), +we didn't include it because we were using the default chain ID ("test_chain_id"). +Now that we're using a custom chain, we need to specify the chain explicitly on the command line. Ok, so that's how we can send a `SendTx` transaction using our `example-plugin` CLI, but we were already able to do that with the `basecoin` CLI. With our new CLI, however, we can also send an `ExamplePluginTx`: ``` -example-plugin tx example --amount 1 --coin gold --chain_id example-chain +example-plugin tx example --amount 1gold --chain_id example-chain ``` The transaction is invalid! That's because we didn't specify the `--valid` flag: ``` -example-plugin tx example --valid --amount 1 --coin gold --chain_id example-chain +example-plugin tx example --valid --amount 1gold --chain_id example-chain ``` Tada! We successfuly created, signed, broadcast, and processed our custom transaction type. @@ -401,7 +400,7 @@ which contains only an integer. If we send another transaction, and then query again, we'll see the value increment: ``` -example-plugin tx example --valid --amount 1 --coin gold --chain_id example-chain +example-plugin tx example --valid --amount 1gold --chain_id example-chain example-plugin query ExamplePlugin.State ``` diff --git a/docs/guide/ibc.md b/docs/guide/ibc.md index 4bd3228140..36ae260877 100644 --- a/docs/guide/ibc.md +++ b/docs/guide/ibc.md @@ -236,13 +236,13 @@ export CHAIN_FLAGS2="--chain_id $CHAIN_ID2 --from ./data/chain2/basecoin/key.jso Let's start by registering `test_chain_1` on `test_chain_2`: ``` -basecoin tx ibc --amount 10 $CHAIN_FLAGS2 register --chain_id $CHAIN_ID1 --genesis ./data/chain1/tendermint/genesis.json +basecoin tx ibc --amount 10blank $CHAIN_FLAGS2 register --chain_id $CHAIN_ID1 --genesis ./data/chain1/tendermint/genesis.json ``` Now we can create the outgoing packet on `test_chain_1`: ``` -basecoin tx ibc --amount 10 $CHAIN_FLAGS1 packet create --from $CHAIN_ID1 --to $CHAIN_ID2 --type coin --payload 0xDEADBEEF --sequence 1 +basecoin tx ibc --amount 10blank $CHAIN_FLAGS1 packet create --from $CHAIN_ID1 --to $CHAIN_ID2 --type coin --payload 0xDEADBEEF --sequence 1 ``` Note our payload is just `DEADBEEF`. @@ -270,7 +270,7 @@ The former is used as input for later commands; the latter is human-readable, so Let's send this updated information about `test_chain_1` to `test_chain_2`: ``` -basecoin tx ibc --amount 10 $CHAIN_FLAGS2 update --header 0x
--commit 0x +basecoin tx ibc --amount 10blank $CHAIN_FLAGS2 update --header 0x
--commit 0x ``` where `
` and `` are the hex-encoded header and commit returned by the previous `block` command. @@ -280,7 +280,7 @@ along with proof the packet was committed on `test_chain_1`. Since `test_chain_2 of `test_chain_1`, it will be able to verify the proof! ``` -basecoin tx ibc --amount 10 $CHAIN_FLAGS2 packet post --from $CHAIN_ID1 --height --packet 0x --proof 0x +basecoin tx ibc --amount 10blank $CHAIN_FLAGS2 packet post --from $CHAIN_ID1 --height --packet 0x --proof 0x ``` Here, `` is one greater than the height retuned by the previous `query` command, and `` and `` are the diff --git a/docs/guide/src/example-plugin/plugin.go b/docs/guide/src/example-plugin/plugin.go index f6fd5d6a62..e930ffbf90 100644 --- a/docs/guide/src/example-plugin/plugin.go +++ b/docs/guide/src/example-plugin/plugin.go @@ -69,7 +69,7 @@ func (ep *ExamplePlugin) RunTx(store types.KVStore, ctx types.CallContext, txByt return abci.OK } -func (cp *ExamplePlugin) InitChain(store types.KVStore, vals []*abci.Validator) { +func (ep *ExamplePlugin) InitChain(store types.KVStore, vals []*abci.Validator) { } func (ep *ExamplePlugin) BeginBlock(store types.KVStore, hash []byte, header *abci.Header) {