-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test Only: coderrabit changes #214
Changes from all commits
f036da9
0fd3579
2a7da1e
b4bd99b
a9ea38c
8e00488
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,12 @@ | ||
reviews: | ||
path_instructions: | ||
- path: "**/*.go" | ||
instructions: "Ignore making test suggestions for Go files. Review best practices, security, and performance." | ||
auto_review: | ||
base_branches: | ||
- "master" | ||
- "dev" | ||
- "feat/.*" | ||
|
||
chat: | ||
auto_reply: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -419,11 +419,11 @@ | |
} | ||
} | ||
|
||
// prepareFactory ensures the account defined by ctx.GetFromAddress() exists and | ||
// PrepareFactory ensures the account defined by ctx.GetFromAddress() exists and | ||
// if the account number and/or the account sequence number are zero (not set), | ||
// they will be queried for and set on the provided Factory. A new Factory with | ||
// the updated fields will be returned. | ||
func (c *chainClient) prepareFactory(clientCtx client.Context, txf tx.Factory) (tx.Factory, error) { | ||
func PrepareFactory(clientCtx client.Context, txf tx.Factory) (tx.Factory, error) { | ||
from := clientCtx.GetFromAddress() | ||
|
||
if err := txf.AccountRetriever().EnsureExists(clientCtx, from); err != nil { | ||
|
@@ -605,7 +605,7 @@ | |
res, err := c.broadcastTx(c.ctx, c.txFactory, true, msgs...) | ||
|
||
if err != nil { | ||
if strings.Contains(err.Error(), "account sequence mismatch") { | ||
if c.opts.FixSeqMismatch && strings.Contains(err.Error(), "account sequence mismatch") { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of handling for "account sequence mismatch" in Would you like assistance in creating test cases for this error handling scenario? |
||
c.syncNonce() | ||
sequence := c.getAccSeq() | ||
c.txFactory = c.txFactory.WithSequence(sequence) | ||
|
@@ -633,7 +633,7 @@ | |
func (c *chainClient) SimulateMsg(clientCtx client.Context, msgs ...sdk.Msg) (*txtypes.SimulateResponse, error) { | ||
c.txFactory = c.txFactory.WithSequence(c.accSeq) | ||
c.txFactory = c.txFactory.WithAccountNumber(c.accNum) | ||
txf, err := c.prepareFactory(clientCtx, c.txFactory) | ||
txf, err := PrepareFactory(clientCtx, c.txFactory) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of Would you like assistance in creating test cases for this behavior? |
||
if err != nil { | ||
err = errors.Wrap(err, "failed to prepareFactory") | ||
return nil, err | ||
|
@@ -668,7 +668,7 @@ | |
c.txFactory = c.txFactory.WithAccountNumber(c.accNum) | ||
res, err := c.broadcastTx(c.ctx, c.txFactory, false, msgs...) | ||
if err != nil { | ||
if strings.Contains(err.Error(), "account sequence mismatch") { | ||
if c.opts.FixSeqMismatch && strings.Contains(err.Error(), "account sequence mismatch") { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of handling for "account sequence mismatch" in Would you like assistance in creating test cases for this error handling scenario? |
||
c.syncNonce() | ||
sequence := c.getAccSeq() | ||
c.txFactory = c.txFactory.WithSequence(sequence) | ||
|
@@ -682,13 +682,14 @@ | |
return nil, err | ||
} | ||
} | ||
|
||
return res, nil | ||
} | ||
|
||
func (c *chainClient) BuildSignedTx(clientCtx client.Context, accNum, accSeq, initialGas uint64, msgs ...sdk.Msg) ([]byte, error) { | ||
txf := NewTxFactory(clientCtx).WithSequence(accSeq).WithAccountNumber(accNum).WithGas(initialGas) | ||
return c.buildSignedTx(clientCtx, txf, msgs...) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The delegation of transaction building to a new Would you like assistance in creating test cases for these functions? |
||
} | ||
|
||
func (c *chainClient) buildSignedTx(clientCtx client.Context, txf tx.Factory, msgs ...sdk.Msg) ([]byte, error) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of the Would you like assistance in creating test cases for this function? |
||
if clientCtx.Simulate { | ||
simTxBytes, err := txf.BuildSimTx(msgs...) | ||
if err != nil { | ||
|
@@ -709,7 +710,7 @@ | |
c.gasWanted = adjustedGas | ||
} | ||
|
||
txf, err := c.prepareFactory(clientCtx, txf) | ||
txf, err := PrepareFactory(clientCtx, txf) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "failed to prepareFactory") | ||
} | ||
|
@@ -800,48 +801,9 @@ | |
await bool, | ||
msgs ...sdk.Msg, | ||
) (*txtypes.BroadcastTxResponse, error) { | ||
txf, err := c.prepareFactory(clientCtx, txf) | ||
if err != nil { | ||
err = errors.Wrap(err, "failed to prepareFactory") | ||
return nil, err | ||
} | ||
ctx := context.Background() | ||
if clientCtx.Simulate { | ||
simTxBytes, err := txf.BuildSimTx(msgs...) | ||
if err != nil { | ||
err = errors.Wrap(err, "failed to build sim tx bytes") | ||
return nil, err | ||
} | ||
ctx := c.getCookie(ctx) | ||
simRes, err := c.txClient.Simulate(ctx, &txtypes.SimulateRequest{TxBytes: simTxBytes}) | ||
if err != nil { | ||
err = errors.Wrap(err, "failed to CalculateGas") | ||
return nil, err | ||
} | ||
|
||
adjustedGas := uint64(txf.GasAdjustment() * float64(simRes.GasInfo.GasUsed)) | ||
txf = txf.WithGas(adjustedGas) | ||
|
||
c.gasWanted = adjustedGas | ||
} | ||
|
||
txn, err := txf.BuildUnsignedTx(msgs...) | ||
|
||
if err != nil { | ||
err = errors.Wrap(err, "failed to BuildUnsignedTx") | ||
return nil, err | ||
} | ||
|
||
txn.SetFeeGranter(clientCtx.GetFeeGranterAddress()) | ||
err = tx.Sign(txf, clientCtx.GetFromName(), txn, true) | ||
if err != nil { | ||
err = errors.Wrap(err, "failed to Sign Tx") | ||
return nil, err | ||
} | ||
|
||
txBytes, err := clientCtx.TxConfig.TxEncoder()(txn.GetTx()) | ||
txBytes, err := c.buildSignedTx(clientCtx, txf, msgs...) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The integration of Would you like assistance in creating test cases for this integration and error handling? |
||
if err != nil { | ||
err = errors.Wrap(err, "failed TxEncoder to encode Tx") | ||
err = errors.Wrap(err, "failed to build signed Tx") | ||
return nil, err | ||
} | ||
|
||
|
@@ -850,7 +812,7 @@ | |
Mode: txtypes.BroadcastMode_BROADCAST_MODE_SYNC, | ||
} | ||
// use our own client to broadcast tx | ||
ctx = c.getCookie(ctx) | ||
ctx := c.getCookie(context.Background()) | ||
res, err := c.txClient.BroadcastTx(ctx, &req) | ||
if !await || err != nil { | ||
return res, err | ||
|
@@ -925,7 +887,7 @@ | |
log.Debugln("broadcastTx with nonce", sequence) | ||
res, err := c.broadcastTx(c.ctx, c.txFactory, true, toSubmit...) | ||
if err != nil { | ||
if strings.Contains(err.Error(), "account sequence mismatch") { | ||
if c.opts.FixSeqMismatch && strings.Contains(err.Error(), "account sequence mismatch") { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of handling for "account sequence mismatch" in Would you like assistance in creating test cases for this error handling scenario? |
||
c.syncNonce() | ||
sequence := c.getAccSeq() | ||
c.txFactory = c.txFactory.WithSequence(sequence) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change to make
PrepareFactory
public is noted and aligns with the PR objectives. However, it's important to ensure that this function is covered by tests, especially now that it's part of the public API.Would you like assistance in creating test cases for this function?