refactor!: remove broadcast mode block (#12659)
This commit is contained in:
+1
-39
@@ -28,11 +28,8 @@ func (ctx Context) BroadcastTx(txBytes []byte) (res *sdk.TxResponse, err error)
|
||||
case flags.BroadcastAsync:
|
||||
res, err = ctx.BroadcastTxAsync(txBytes)
|
||||
|
||||
case flags.BroadcastBlock:
|
||||
res, err = ctx.BroadcastTxCommit(txBytes)
|
||||
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported return type %s; supported types: sync, async, block", ctx.BroadcastMode)
|
||||
return nil, fmt.Errorf("unsupported return type %s; supported types: sync, async", ctx.BroadcastMode)
|
||||
}
|
||||
|
||||
return res, err
|
||||
@@ -81,39 +78,6 @@ func CheckTendermintError(err error, tx tmtypes.Tx) *sdk.TxResponse {
|
||||
}
|
||||
}
|
||||
|
||||
// BroadcastTxCommit broadcasts transaction bytes to a Tendermint node and
|
||||
// waits for a commit. An error is only returned if there is no RPC node
|
||||
// connection or if broadcasting fails.
|
||||
//
|
||||
// NOTE: This should ideally not be used as the request may timeout but the tx
|
||||
// may still be included in a block. Use BroadcastTxAsync or BroadcastTxSync
|
||||
// instead.
|
||||
func (ctx Context) BroadcastTxCommit(txBytes []byte) (*sdk.TxResponse, error) {
|
||||
node, err := ctx.GetNode()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res, err := node.BroadcastTxCommit(context.Background(), txBytes)
|
||||
if err == nil {
|
||||
return sdk.NewResponseFormatBroadcastTxCommit(res), nil
|
||||
}
|
||||
|
||||
// with these changes(https://github.com/tendermint/tendermint/pull/7683)
|
||||
// in tendermint, we receive both an error and a non-empty res from TM. Here
|
||||
// we handle the case where both are relevant. Note: without this edge-case handling,
|
||||
// CLI is breaking (for few transactions ex: executing unathorized messages in feegrant)
|
||||
// this check is added to tackle the particular case.
|
||||
if strings.Contains(err.Error(), "transaction encountered error") {
|
||||
return sdk.NewResponseFormatBroadcastTxCommit(res), nil
|
||||
}
|
||||
|
||||
if errRes := CheckTendermintError(err, txBytes); errRes != nil {
|
||||
return errRes, nil
|
||||
}
|
||||
return sdk.NewResponseFormatBroadcastTxCommit(res), err
|
||||
}
|
||||
|
||||
// BroadcastTxSync broadcasts transaction bytes to a Tendermint node
|
||||
// synchronously (i.e. returns after CheckTx execution).
|
||||
func (ctx Context) BroadcastTxSync(txBytes []byte) (*sdk.TxResponse, error) {
|
||||
@@ -170,8 +134,6 @@ func normalizeBroadcastMode(mode tx.BroadcastMode) string {
|
||||
switch mode {
|
||||
case tx.BroadcastMode_BROADCAST_MODE_ASYNC:
|
||||
return "async"
|
||||
case tx.BroadcastMode_BROADCAST_MODE_BLOCK:
|
||||
return "block"
|
||||
case tx.BroadcastMode_BROADCAST_MODE_SYNC:
|
||||
return "sync"
|
||||
default:
|
||||
|
||||
@@ -21,10 +21,6 @@ type MockClient struct {
|
||||
err error
|
||||
}
|
||||
|
||||
func (c MockClient) BroadcastTxCommit(ctx context.Context, tx tmtypes.Tx) (*coretypes.ResultBroadcastTxCommit, error) {
|
||||
return nil, c.err
|
||||
}
|
||||
|
||||
func (c MockClient) BroadcastTxAsync(ctx context.Context, tx tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) {
|
||||
return nil, c.err
|
||||
}
|
||||
@@ -50,7 +46,6 @@ func TestBroadcastError(t *testing.T) {
|
||||
|
||||
modes := []string{
|
||||
flags.BroadcastAsync,
|
||||
flags.BroadcastBlock,
|
||||
flags.BroadcastSync,
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ keyring-backend = "{{ .KeyringBackend }}"
|
||||
output = "{{ .Output }}"
|
||||
# <host>:<port> to Tendermint RPC interface for this chain
|
||||
node = "{{ .Node }}"
|
||||
# Transaction broadcasting mode (sync|async|block)
|
||||
# Transaction broadcasting mode (sync|async)
|
||||
broadcast-mode = "{{ .BroadcastMode }}"
|
||||
`
|
||||
|
||||
|
||||
@@ -21,9 +21,6 @@ const (
|
||||
// DefaultKeyringBackend
|
||||
DefaultKeyringBackend = keyring.BackendOS
|
||||
|
||||
// BroadcastBlock defines a tx broadcasting mode where the client waits for
|
||||
// the tx to be committed in a block.
|
||||
BroadcastBlock = "block"
|
||||
// BroadcastSync defines a tx broadcasting mode where the client waits for
|
||||
// a CheckTx execution response only.
|
||||
BroadcastSync = "sync"
|
||||
@@ -114,7 +111,7 @@ func AddTxFlagsToCmd(cmd *cobra.Command) {
|
||||
cmd.Flags().String(FlagNode, "tcp://localhost:26657", "<host>:<port> to tendermint rpc interface for this chain")
|
||||
cmd.Flags().Bool(FlagUseLedger, false, "Use a connected Ledger device")
|
||||
cmd.Flags().Float64(FlagGasAdjustment, DefaultGasAdjustment, "adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored ")
|
||||
cmd.Flags().StringP(FlagBroadcastMode, "b", BroadcastSync, "Transaction broadcasting mode (sync|async|block)")
|
||||
cmd.Flags().StringP(FlagBroadcastMode, "b", BroadcastSync, "Transaction broadcasting mode (sync|async)")
|
||||
cmd.Flags().Bool(FlagDryRun, false, "ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible)")
|
||||
cmd.Flags().Bool(FlagGenerateOnly, false, "Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name)")
|
||||
cmd.Flags().Bool(FlagOffline, false, "Offline mode (does not allow any online functionality)")
|
||||
|
||||
Reference in New Issue
Block a user