-
Notifications
You must be signed in to change notification settings - Fork 194
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
fix(common): use pending block tag in tx queue #3073
Merged
Merged
Changes from 6 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
8f04325
fix(common): route all actions through viem client
holic b640a79
Merge remote-tracking branch 'origin/main' into holic/tx-queue-blockTag
holic f2133b7
Merge remote-tracking branch 'origin/main' into holic/tx-queue-blockTag
holic d9b1e50
fix(common): use pending block tag in tx queue
holic effd7fc
maybe fix types
holic 6858a5a
Create poor-nails-appear.md
holic 97cb87e
Merge branch 'main' into holic/tx-queue-blockTag
holic File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
"@latticexyz/common": patch | ||
--- | ||
|
||
`writeContract` and `sendTransaction` actions now use `pending` block tag when estimating gas. This aligns with previous behavior before changes in the last version. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ import { | |
Transport, | ||
SendTransactionReturnType, | ||
PublicClient, | ||
SendTransactionRequest, | ||
} from "viem"; | ||
import { sendTransaction as viem_sendTransaction } from "viem/actions"; | ||
import pRetry from "p-retry"; | ||
|
@@ -38,10 +39,11 @@ export type SendTransactionExtraOptions<chain extends Chain | undefined> = { | |
export async function sendTransaction< | ||
chain extends Chain | undefined, | ||
account extends Account | undefined, | ||
chainOverride extends Chain | undefined, | ||
const request extends SendTransactionRequest<chain, chainOverride>, | ||
chainOverride extends Chain | undefined = undefined, | ||
>( | ||
client: Client<Transport, chain, account>, | ||
request: SendTransactionParameters<chain, account, chainOverride>, | ||
request: SendTransactionParameters<chain, account, chainOverride, request>, | ||
opts: SendTransactionExtraOptions<chain> = {}, | ||
): Promise<SendTransactionReturnType> { | ||
const rawAccount = request.account ?? client.account; | ||
|
@@ -52,10 +54,11 @@ export async function sendTransaction< | |
const account = parseAccount(rawAccount); | ||
const chain = client.chain; | ||
|
||
const blockTag = "pending"; | ||
const nonceManager = await getNonceManager({ | ||
client: opts.publicClient ?? client, | ||
address: account.address, | ||
blockTag: "pending", | ||
blockTag, | ||
queueConcurrency: opts.queueConcurrency, | ||
}); | ||
|
||
|
@@ -70,13 +73,14 @@ export async function sendTransaction< | |
pRetry( | ||
async () => { | ||
const nonce = nonceManager.nextNonce(); | ||
const params: SendTransactionParameters<chain, account, chainOverride> = { | ||
const params = { | ||
blockTag, | ||
...request, | ||
nonce, | ||
...feeRef.fees, | ||
}; | ||
} as const satisfies SendTransactionParameters<chain, account, chainOverride, request>; | ||
debug("sending tx to", request.to, "with nonce", nonce); | ||
return await getAction(client, viem_sendTransaction, "sendTransaction")(params); | ||
return await getAction(client, viem_sendTransaction, "sendTransaction")(params as never); | ||
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. viem types don't like |
||
}, | ||
{ | ||
retries: 3, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
these changes align with viem's type signature (forgot to do this last version bump)