-
Notifications
You must be signed in to change notification settings - Fork 335
Return parsed token accounts in simulateBundle
#592
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
Closed
mcintyre94
wants to merge
7
commits into
jito-foundation:master
from
mcintyre94:cm-bundle-jsonparsed-tokens
Closed
Return parsed token accounts in simulateBundle
#592
mcintyre94
wants to merge
7
commits into
jito-foundation:master
from
mcintyre94:cm-bundle-jsonparsed-tokens
Conversation
This file contains hidden or 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
only reroute if relayer connected (jito-foundation#123) feat: add client tls config (jito-foundation#121) remove extra val (jito-foundation#129) fix clippy (jito-foundation#130) copy all binaries to docker-output (jito-foundation#131) Ledger tool halts at slot passed to create-snapshot (jito-foundation#118) update program submodule (jito-foundation#133) quick fix for tips and clearing old bundles (jito-foundation#135) update submodule to new program (jito-foundation#136) Improve stake-meta-generator usability (jito-foundation#134) pinning submodule head (jito-foundation#140) Use BundleAccountLocker when handling tip txs (jito-foundation#147) Add metrics for relayer + block engine proxy (jito-foundation#149) Build claim-mev in docker (jito-foundation#141) Rework bundle receiving and add metrics (jito-foundation#152) (jito-foundation#154) update submodule + dev files (jito-foundation#158) Deterministically find tip amounts, add meta to stake info, and cleanup pubkey/strings in MEV tips (jito-foundation#159) update jito-programs submodule (jito-foundation#160) Separate MEV tip related workflow (jito-foundation#161) Add block builder fee protos (jito-foundation#162) fix jito programs (jito-foundation#163) update submodule so autosnapshot exits out of ledger tool early (jito-foundation#164) Pipe through block builder fee (jito-foundation#167) pull in new snapshot code (jito-foundation#171) block builder bug (jito-foundation#172) Pull in new slack autosnapshot submodule (jito-foundation#174) sort stake meta json and use int math (jito-foundation#176) add accountsdb conn submod (jito-foundation#169) Update tip distribution parameters (jito-foundation#177) new submodules (jito-foundation#180) Add buildkite link for jito CI (jito-foundation#183) Fixed broken links to repositories (jito-foundation#184) Changed from ssh to https transfer for clone Seg/update submods (jito-foundation#187) fix tests (jito-foundation#190) rm geyser submod (jito-foundation#192) rm dangling geyser references (jito-foundation#193) fix syntax err (jito-foundation#195) use deterministic req ids in batch calls (jito-foundation#199) update jito-programs revert cargo update Cargo lock update with path fix fix cargo update autosnapshot with block lookback (jito-foundation#201) [JIT-460] When claiming mev tips, skip accounts that won't have min rent exempt amount after claiming (jito-foundation#203) Add logging for sol balance desired (jito-foundation#205) * add logging * add logging * update msg * tweak vars update submodule (jito-foundation#204) use efficient data structures when calling batch_simulate_bundles (jito-foundation#206) [JIT-504] Add low balance check in uploading merkle roots (jito-foundation#209) add config to simulate on top of working bank (jito-foundation#211) rm frozen bank check simulate_bundle rpc bugfixes (jito-foundation#214) rm frozen bank check in simulate_bundle rpc method [JIT-519] Store ClaimStatus address in merkle-root-json (jito-foundation#210) * add files * switch to include bump update submodule (jito-foundation#217) add amount filter (jito-foundation#218) update autosnapshot (jito-foundation#222) Print TX error in Bundles (jito-foundation#223) add new args to support single relayer and block-engine endpoints (jito-foundation#224) point to new jito-programs submod and invoke updated init tda instruction (jito-foundation#228) fix clippy errors (jito-foundation#230) fix validator start scripts (jito-foundation#232) Point README to gitbook (jito-foundation#237) use packaged cargo bin to build (jito-foundation#239) Add validator identity pubkey to StakeMeta (jito-foundation#226) The vote account associated with a validator is not a permanent link, so log the validator identity as well. bugfix: conditionally compile with debug flags (jito-foundation#240) Seg/tip distributor master (jito-foundation#242) * validate tree nodes * fix unit tests * pr feedback * bump jito-programs submod Simplify bootstrapping (jito-foundation#241) * startup without precompile * update spacing * use release mode * spacing fix validation rm validation skip Account for block builder fee when generating excess tip balance (jito-foundation#247) Improve docker caching delay constructing claim mev txs (jito-foundation#253) fix stake meta tests from bb fee (jito-foundation#254) fix tests Buffer bundles that exceed cost model (jito-foundation#225) * buffer bundles that exceed cost model clear qos failed bundles buffer if not leader soon (jito-foundation#260) update Cargo.lock to correct solana versions in jito-programs submodule (jito-foundation#265) fix simulate_bundle client and better error handling (jito-foundation#267) update submod (jito-foundation#272) Preallocate Bundle Cost (jito-foundation#238) fix Dockerfile (jito-foundation#278) Fix Tests (jito-foundation#279) Fix Tests (jito-foundation#281) * fix tests update jito-programs submod (jito-foundation#282) add reclaim rent workflow (jito-foundation#283) update jito-programs submod fix clippy errs rm wrong assertion and swap out file write fn call (jito-foundation#292) Remove security.md (jito-foundation#293) demote frequent relayer_stage-stream_error to warn (jito-foundation#275) account for case where TDA exists but not allocated (jito-foundation#295) implement better retries for tip-distributor workflows (jito-foundation#297) limit number of concurrent rpc calls (jito-foundation#298) Discard Empty Packet Batches (jito-foundation#299) Identity Hotswap (jito-foundation#290) small fixes (jito-foundation#305) Set backend config from admin rpc (jito-foundation#304) Admin Shred Receiver Change (jito-foundation#306) Seg/rm bundle UUID (jito-foundation#309) Fix github workflow to recursively clone (jito-foundation#327) Add recursive checkout for downstream-project-spl.yaml (jito-foundation#341) Use cluster info functions for tpu (jito-foundation#345) Use git rev-parse for git sha Remove blacklisted tx from message_hash_to_transaction (jito-foundation#374) Updates bootstrap and start scripts needed for local dev. (jito-foundation#384) Remove Deprecated Cli Args (jito-foundation#387) Master Rebase improve simulate_bundle errors and response (jito-foundation#404) derive Clone on accountoverrides (jito-foundation#416) Add upsert to AccountOverrides (jito-foundation#419) update jito-programs (jito-foundation#430) [JIT-1661] Faster Autosnapshot (jito-foundation#436) Reverts simulate_transaction result calls to upstream (jito-foundation#446) Don't unlock accounts in TransactionBatches used during simulation (jito-foundation#449) first pass at wiring up jito-plugin (jito-foundation#428) [JIT-1713] Fix bundle's blockspace preallocation (jito-foundation#489) [JIT-1708] Fix TOC TOU condition for relayer and block engine config (jito-foundation#491) [JIT-1710] - Optimize Bundle Consumer Checks (jito-foundation#490) Add Blockhash Metrics to Bundle Committer (jito-foundation#500) add priority fee ix to mev-claim (jito-foundation#520) Update Autosnapshot (jito-foundation#548) Run MEV claims + reclaiming rent-exempt amounts in parallel. (jito-foundation#582) Update CI (jito-foundation#584) - Add recursive submodule checkouts. - Re-add solana-secondary step
… against a constant instead of VecDeque::capacity() (jito-foundation#587)
7e02a2a to
3be84f5
Compare
Contributor
Author
|
Closing, superseded by #600 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
If you call
simulateBundleand pass a token account inpre/postExecutionAccountsConfigs, then the token accounts are never returned in JSON. You will always get the base64 encoded data.This is caused by attempting to encode the data without fetching the number of decimals for the mint, which causes a fallback to base64 data.
This was fixed for
simulateTransactionupstream, butsimulateBundlehas the same issue.Upstream issue (with more details of the code path causing this): solana-labs/solana#34693
Upstream fix to
simulateTransaction: solana-labs/solana#34619Summary of Changes
The changes are based on the upstream changes in
simulateTransaction.Instead of directly encoding the post-account data, we call
get_encoded_account(added in the upstream PR), which will correctly parse a token account. As this function was written for transaction post-accounts it also takesoverwrite_accounts: Option<&HashMap<Pubkey, AccountSharedData>>, so that account state can be overridden if a transaction has changed it.In order to provide this, we now maintain a
AccountOverridesobject insimulateBundle. This is the same data structure, but has some useful helper functions and I think makes sense to use here. After each transaction, this is updated (usingupsert_account_overrides) with thepost_accountsfrom the transaction. This is then passed when we encode the post-accounts for that transaction.The result is that
simulateBundlenow correctly JSON encodes token accounts, using data from the transactions, or the bank if required.