diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2dc4422..a86847a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,6 +54,10 @@ jobs: source test_suite_env/bin/activate ./fetch_and_generate.sh + - name: Verify generated code is up to date + run: | + git diff --exit-code src/test_suite/protos/ src/test_suite/flatbuffers/ + - name: Check dependencies run: | source test_suite_env/bin/activate diff --git a/.gitmodules b/.gitmodules index 1eef33d..01866b1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +1,8 @@ [submodule "shlr/flatbuffers"] path = shlr/flatbuffers url = https://github.com/firedancer-io/flatbuffers.git - branch = v25.9.23-patches + branch = v25.12.19-patches [submodule "shlr/protosol"] path = shlr/protosol url = https://github.com/firedancer-io/protosol.git - branch = v5.1.0 + branch = v5.3.0 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3655ae2..10fa640 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,3 +24,15 @@ repos: entry: test -d src/test_suite/flatbuffers/org files: \.fbs$ pass_filenames: false + - id: check-protobuf-version + name: Check protobuf generated code matches pinned runtime + language: system + entry: bash scripts/check_protobuf_version.sh + files: (_pb2\.py$|pyproject\.toml$|buf\.gen\.yaml$) + pass_filenames: false + - id: check-quick-import + name: Quick Python import check + language: system + entry: bash scripts/check_quick_import.sh + files: (_pb2\.py$|flatbuffers_utils\.py$|/flatbuffers/) + pass_filenames: false diff --git a/buf.gen.yaml b/buf.gen.yaml index 43da176..22b798b 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -1,4 +1,4 @@ version: v1 plugins: - - plugin: buf.build/protocolbuffers/python:v34.0 + - plugin: buf.build/protocolbuffers/python:v34.1 out: src/test_suite/protos diff --git a/scripts/check_protobuf_version.sh b/scripts/check_protobuf_version.sh new file mode 100755 index 0000000..f50f304 --- /dev/null +++ b/scripts/check_protobuf_version.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" + +PINNED=$(grep "protobuf==" "$REPO_ROOT/pyproject.toml" | grep -oP "\d+\.\d+\.\d+") +if [ -z "$PINNED" ]; then + echo "WARNING: Could not find protobuf version pin in pyproject.toml" + exit 0 +fi + +FAILED=0 +for f in "$REPO_ROOT"/src/test_suite/protos/*_pb2.py; do + GENVER=$(grep "Protobuf Python Version:" "$f" 2>/dev/null | grep -oP "\d+\.\d+\.\d+" || true) + if [ -n "$GENVER" ] && [ "$GENVER" != "$PINNED" ]; then + echo "ERROR: $f was generated for protobuf $GENVER but pyproject.toml pins $PINNED" + FAILED=1 + fi +done + +if [ "$FAILED" -eq 1 ]; then + echo "" + echo "Fix: update buf.gen.yaml plugin version, then run ./fetch_and_generate.sh" + exit 1 +fi diff --git a/scripts/check_quick_import.sh b/scripts/check_quick_import.sh new file mode 100755 index 0000000..cd828a1 --- /dev/null +++ b/scripts/check_quick_import.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" + +if [ ! -f "$REPO_ROOT/test_suite_env/bin/activate" ]; then + # No venv -- skip (CI will catch issues) + exit 0 +fi + +source "$REPO_ROOT/test_suite_env/bin/activate" +PYTHONPATH="$REPO_ROOT/src" python -c " +from test_suite.protos import invoke_pb2 +from test_suite.flatbuffers_utils import FLATBUFFERS_AVAILABLE +print('imports OK') +" || { + echo "" + echo "ERROR: Python imports failed. Regenerate with: ./fetch_and_generate.sh" + exit 1 +} diff --git a/shlr/flatbuffers b/shlr/flatbuffers index 26970e8..141e51f 160000 --- a/shlr/flatbuffers +++ b/shlr/flatbuffers @@ -1 +1 @@ -Subproject commit 26970e8640957f98094b86f6eb2d7676f98e85f4 +Subproject commit 141e51f042c9f89a62567f86225b54fb62f98f33 diff --git a/shlr/protosol b/shlr/protosol index e76f82d..85078ec 160000 --- a/shlr/protosol +++ b/shlr/protosol @@ -1 +1 @@ -Subproject commit e76f82d836c503bc7bc32fc22f6ddbcb9edc1fd3 +Subproject commit 85078ec9bb7782f6bf49d65d8f1cc89cb3abb3a0 diff --git a/src/test_suite/block/codec_utils.py b/src/test_suite/block/codec_utils.py index cf63be2..43005e7 100644 --- a/src/test_suite/block/codec_utils.py +++ b/src/test_suite/block/codec_utils.py @@ -18,20 +18,6 @@ def _encode_prev_vote_account(pva): pva.node_pubkey = fd58.enc32(pva.node_pubkey) -def _decode_stake_delegation(sd): - if sd.stake_account: - sd.stake_account = fd58.dec32(sd.stake_account) - if sd.vote_account: - sd.vote_account = fd58.dec32(sd.vote_account) - - -def _encode_stake_delegation(sd): - if sd.stake_account: - sd.stake_account = fd58.enc32(sd.stake_account) - if sd.vote_account: - sd.vote_account = fd58.enc32(sd.vote_account) - - def decode_input(context: block_pb.BlockContext): """ Decode BlockContext fields in-place into human-readable format. @@ -60,10 +46,6 @@ def decode_input(context: block_pb.BlockContext): for i in range(len(context.bank.vote_accounts_t_2)): _decode_prev_vote_account(context.bank.vote_accounts_t_2[i]) - # T-1 Stake delegations - for i in range(len(context.bank.stake_delegations_t_1)): - _decode_stake_delegation(context.bank.stake_delegations_t_1[i]) - # Blockhash queue for i in range(len(context.bank.blockhash_queue)): context.bank.blockhash_queue[i].blockhash = fd58.dec32( @@ -99,10 +81,6 @@ def encode_input(context: block_pb.BlockContext): for i in range(len(context.bank.vote_accounts_t_2)): _encode_prev_vote_account(context.bank.vote_accounts_t_2[i]) - # T-1 Stake delegations - for i in range(len(context.bank.stake_delegations_t_1)): - _encode_stake_delegation(context.bank.stake_delegations_t_1[i]) - # Blockhash queue for i in range(len(context.bank.blockhash_queue)): context.bank.blockhash_queue[i].blockhash = fd58.enc32( diff --git a/src/test_suite/flatbuffers/org/solana/sealevel/v2/XXHash.py b/src/test_suite/flatbuffers/org/solana/sealevel/v2/XXHash.py index 8dc944f..0e10a4b 100644 --- a/src/test_suite/flatbuffers/org/solana/sealevel/v2/XXHash.py +++ b/src/test_suite/flatbuffers/org/solana/sealevel/v2/XXHash.py @@ -39,7 +39,7 @@ def HashIsNone(self): return False -def CreateXXHash(builder, hash): +def CreateXxhash(builder, hash): builder.Prep(1, 8) for _idx0 in range(8 , 0, -1): builder.PrependUint8(hash[_idx0-1]) diff --git a/src/test_suite/flatbuffers_utils.py b/src/test_suite/flatbuffers_utils.py index 6f7c3df..1da8256 100644 --- a/src/test_suite/flatbuffers_utils.py +++ b/src/test_suite/flatbuffers_utils.py @@ -838,7 +838,7 @@ def build_fb_elf_fixture( input_offset = FB_ELFLoaderCtx_mod.End(builder) # Build output (ELFLoaderEffects) - # XXHash is an inline struct -- CreateXXHash must be called immediately + # XXHash is an inline struct -- CreateXxhash must be called immediately # before the corresponding Add call (between Start and End). output_offset = None if effects is not None: @@ -848,7 +848,7 @@ def build_fb_elf_fixture( FB_ELFLoaderEffects_mod.Start(builder) FB_ELFLoaderEffects_mod.AddErrCode(builder, effects.get("err_code", 0)) if rodata_hash_bytes and len(rodata_hash_bytes) >= 8: - rodata_hash_offset = FB_XXHash_mod.CreateXXHash( + rodata_hash_offset = FB_XXHash_mod.CreateXxhash( builder, list(rodata_hash_bytes[:8]) ) FB_ELFLoaderEffects_mod.AddRodataHash(builder, rodata_hash_offset) @@ -856,7 +856,7 @@ def build_fb_elf_fixture( FB_ELFLoaderEffects_mod.AddTextOff(builder, effects.get("text_off", 0)) FB_ELFLoaderEffects_mod.AddEntryPc(builder, effects.get("entry_pc", 0)) if calldests_hash_bytes and len(calldests_hash_bytes) >= 8: - calldests_hash_offset = FB_XXHash_mod.CreateXXHash( + calldests_hash_offset = FB_XXHash_mod.CreateXxhash( builder, list(calldests_hash_bytes[:8]) ) FB_ELFLoaderEffects_mod.AddCalldestsHash(builder, calldests_hash_offset) diff --git a/src/test_suite/protos/block_pb2.py b/src/test_suite/protos/block_pb2.py index c6cbeaa..83f514f 100644 --- a/src/test_suite/protos/block_pb2.py +++ b/src/test_suite/protos/block_pb2.py @@ -24,7 +24,7 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x0b\x62lock.proto\x12\x16org.solana.sealevel.v1\x1a\rcontext.proto\x1a\ttxn.proto\x1a\x0emetadata.proto"I\n\x0b\x43ostTracker\x12\x1d\n\nblock_cost\x18\x01 \x01(\x04R\tblockCost\x12\x1b\n\tvote_cost\x18\x02 \x01(\x04R\x08voteCost"\xa0\x01\n\tInflation\x12\x18\n\x07initial\x18\x01 \x01(\x01R\x07initial\x12\x1a\n\x08terminal\x18\x02 \x01(\x01R\x08terminal\x12\x14\n\x05taper\x18\x03 \x01(\x01R\x05taper\x12\x1e\n\nfoundation\x18\x04 \x01(\x01R\nfoundation\x12\'\n\x0f\x66oundation_term\x18\x05 \x01(\x01R\x0e\x66oundationTerm"`\n\x0b\x45pochCredit\x12\x14\n\x05\x65poch\x18\x01 \x01(\x04R\x05\x65poch\x12\x18\n\x07\x63redits\x18\x02 \x01(\x04R\x07\x63redits\x12!\n\x0cprev_credits\x18\x03 \x01(\x04R\x0bprevCredits"\x92\x02\n\x0fPrevVoteAccount\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x1f\n\x0bnode_pubkey\x18\x02 \x01(\x0cR\nnodePubkey\x12\x14\n\x05stake\x18\x03 \x01(\x04R\x05stake\x12\x1e\n\ncommission\x18\x04 \x01(\rR\ncommission\x12H\n\repoch_credits\x18\x05 \x03(\x0b\x32#.org.solana.sealevel.v1.EpochCreditR\x0c\x65pochCredits\x12\x44\n\x07version\x18\x06 \x01(\x0e\x32*.org.solana.sealevel.v1.VoteAccountVersionR\x07version"\xd2\x02\n\x0fStakeDelegation\x12#\n\rstake_account\x18\x01 \x01(\x0cR\x0cstakeAccount\x12!\n\x0cvote_account\x18\x02 \x01(\x0cR\x0bvoteAccount\x12\x14\n\x05stake\x18\x03 \x01(\x04R\x05stake\x12)\n\x10\x63redits_observed\x18\x04 \x01(\x04R\x0f\x63reditsObserved\x12)\n\x10\x61\x63tivation_epoch\x18\x05 \x01(\x04R\x0f\x61\x63tivationEpoch\x12-\n\x12\x64\x65\x61\x63tivation_epoch\x18\x06 \x01(\x04R\x11\x64\x65\x61\x63tivationEpoch\x12\\\n\x14warmup_cooldown_rate\x18\x07 \x01(\x0e\x32*.org.solana.sealevel.v1.WarmupCooldownRateR\x12warmupCooldownRate"\xb0\x08\n\tBlockBank\x12T\n\x0f\x62lockhash_queue\x18\x01 \x03(\x0b\x32+.org.solana.sealevel.v1.BlockhashQueueEntryR\x0e\x62lockhashQueue\x12;\n\x1arbh_lamports_per_signature\x18\x02 \x01(\rR\x17rbhLamportsPerSignature\x12S\n\x11\x66\x65\x65_rate_governor\x18\x03 \x01(\x0b\x32\'.org.solana.sealevel.v1.FeeRateGovernorR\x0f\x66\x65\x65RateGovernor\x12\x12\n\x04slot\x18\x04 \x01(\x04R\x04slot\x12\x1f\n\x0bparent_slot\x18\x05 \x01(\x04R\nparentSlot\x12&\n\x0e\x63\x61pitalization\x18\x06 \x01(\x04R\x0e\x63\x61pitalization\x12\x1e\n\x0bns_per_slot\x18\x07 \x01(\x0cR\tnsPerSlot\x12?\n\tinflation\x18\x08 \x01(\x0b\x32!.org.solana.sealevel.v1.InflationR\tinflation\x12!\n\x0c\x62lock_height\x18\t \x01(\x04R\x0b\x62lockHeight\x12\x10\n\x03poh\x18\n \x01(\x0cR\x03poh\x12(\n\x10parent_bank_hash\x18\x0b \x01(\x0cR\x0eparentBankHash\x12$\n\x0eparent_lt_hash\x18\x0c \x01(\x0cR\x0cparentLtHash\x12\x34\n\x16parent_signature_count\x18\r \x01(\x04R\x14parentSignatureCount\x12L\n\x0e\x65poch_schedule\x18\x0e \x01(\x0b\x32%.org.solana.sealevel.v1.EpochScheduleR\repochSchedule\x12\x30\n\x04rent\x18\x0f \x01(\x0b\x32\x1c.org.solana.sealevel.v1.RentR\x04rent\x12>\n\x08\x66\x65\x61tures\x18\x10 \x01(\x0b\x32".org.solana.sealevel.v1.FeatureSetR\x08\x66\x65\x61tures\x12R\n\x11vote_accounts_t_1\x18\x11 \x03(\x0b\x32\'.org.solana.sealevel.v1.PrevVoteAccountR\x0evoteAccountsT1\x12R\n\x11vote_accounts_t_2\x18\x12 \x03(\x0b\x32\'.org.solana.sealevel.v1.PrevVoteAccountR\x0evoteAccountsT2\x12Z\n\x15stake_delegations_t_1\x18\x13 \x03(\x0b\x32\'.org.solana.sealevel.v1.StakeDelegationR\x12stakeDelegationsT1"\xdd\x01\n\x0c\x42lockContext\x12@\n\x04txns\x18\x01 \x03(\x0b\x32,.org.solana.sealevel.v1.SanitizedTransactionR\x04txns\x12\x42\n\x0b\x61\x63\x63t_states\x18\x02 \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\nacctStates\x12\x35\n\x04\x62\x61nk\x18\x06 \x01(\x0b\x32!.org.solana.sealevel.v1.BlockBankR\x04\x62\x61nkJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06"\x8f\x02\n\x15LeaderScheduleEffects\x12#\n\rleaders_epoch\x18\x01 \x01(\x04R\x0cleadersEpoch\x12#\n\rleaders_slot0\x18\x02 \x01(\x04R\x0cleadersSlot0\x12(\n\x10leaders_slot_cnt\x18\x03 \x01(\x04R\x0eleadersSlotCnt\x12$\n\x0eleader_pub_cnt\x18\x04 \x01(\x04R\x0cleaderPubCnt\x12*\n\x11leaders_sched_cnt\x18\x05 \x01(\x04R\x0fleadersSchedCnt\x12\x30\n\x14leader_schedule_hash\x18\x06 \x01(\x0cR\x12leaderScheduleHash"\x99\x02\n\x0c\x42lockEffects\x12\x1b\n\thas_error\x18\x01 \x01(\x08R\x08hasError\x12/\n\x13slot_capitalization\x18\x02 \x01(\x04R\x12slotCapitalization\x12\x1b\n\tbank_hash\x18\x03 \x01(\x0cR\x08\x62\x61nkHash\x12\x46\n\x0c\x63ost_tracker\x18\x04 \x01(\x0b\x32#.org.solana.sealevel.v1.CostTrackerR\x0b\x63ostTracker\x12V\n\x0fleader_schedule\x18\x05 \x01(\x0b\x32-.org.solana.sealevel.v1.LeaderScheduleEffectsR\x0eleaderSchedule"\xcd\x01\n\x0c\x42lockFixture\x12\x43\n\x08metadata\x18\x01 \x01(\x0b\x32\'.org.solana.sealevel.v1.FixtureMetadataR\x08metadata\x12:\n\x05input\x18\x02 \x01(\x0b\x32$.org.solana.sealevel.v1.BlockContextR\x05input\x12<\n\x06output\x18\x03 \x01(\x0b\x32$.org.solana.sealevel.v1.BlockEffectsR\x06output*2\n\x12VoteAccountVersion\x12\x0c\n\x08V1_14_11\x10\x00\x12\x06\n\x02V3\x10\x01\x12\x06\n\x02V4\x10\x02*0\n\x12WarmupCooldownRate\x12\x0c\n\x08RATE_025\x10\x00\x12\x0c\n\x08RATE_009\x10\x01\x62\x06proto3' + b'\n\x0b\x62lock.proto\x12\x16org.solana.sealevel.v1\x1a\rcontext.proto\x1a\ttxn.proto\x1a\x0emetadata.proto"I\n\x0b\x43ostTracker\x12\x1d\n\nblock_cost\x18\x01 \x01(\x04R\tblockCost\x12\x1b\n\tvote_cost\x18\x02 \x01(\x04R\x08voteCost"\xa0\x01\n\tInflation\x12\x18\n\x07initial\x18\x01 \x01(\x01R\x07initial\x12\x1a\n\x08terminal\x18\x02 \x01(\x01R\x08terminal\x12\x14\n\x05taper\x18\x03 \x01(\x01R\x05taper\x12\x1e\n\nfoundation\x18\x04 \x01(\x01R\nfoundation\x12\'\n\x0f\x66oundation_term\x18\x05 \x01(\x01R\x0e\x66oundationTerm"`\n\x0b\x45pochCredit\x12\x14\n\x05\x65poch\x18\x01 \x01(\x04R\x05\x65poch\x12\x18\n\x07\x63redits\x18\x02 \x01(\x04R\x07\x63redits\x12!\n\x0cprev_credits\x18\x03 \x01(\x04R\x0bprevCredits"\x92\x02\n\x0fPrevVoteAccount\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x1f\n\x0bnode_pubkey\x18\x02 \x01(\x0cR\nnodePubkey\x12\x14\n\x05stake\x18\x03 \x01(\x04R\x05stake\x12\x1e\n\ncommission\x18\x04 \x01(\rR\ncommission\x12H\n\repoch_credits\x18\x05 \x03(\x0b\x32#.org.solana.sealevel.v1.EpochCreditR\x0c\x65pochCredits\x12\x44\n\x07version\x18\x06 \x01(\x0e\x32*.org.solana.sealevel.v1.VoteAccountVersionR\x07version"\xae\x07\n\tBlockBank\x12T\n\x0f\x62lockhash_queue\x18\x01 \x03(\x0b\x32+.org.solana.sealevel.v1.BlockhashQueueEntryR\x0e\x62lockhashQueue\x12;\n\x1arbh_lamports_per_signature\x18\x02 \x01(\rR\x17rbhLamportsPerSignature\x12S\n\x11\x66\x65\x65_rate_governor\x18\x03 \x01(\x0b\x32\'.org.solana.sealevel.v1.FeeRateGovernorR\x0f\x66\x65\x65RateGovernor\x12\x12\n\x04slot\x18\x04 \x01(\x04R\x04slot\x12\x1f\n\x0bparent_slot\x18\x05 \x01(\x04R\nparentSlot\x12&\n\x0e\x63\x61pitalization\x18\x06 \x01(\x04R\x0e\x63\x61pitalization\x12\x1e\n\x0bns_per_slot\x18\x07 \x01(\x0cR\tnsPerSlot\x12?\n\tinflation\x18\x08 \x01(\x0b\x32!.org.solana.sealevel.v1.InflationR\tinflation\x12!\n\x0c\x62lock_height\x18\t \x01(\x04R\x0b\x62lockHeight\x12\x10\n\x03poh\x18\n \x01(\x0cR\x03poh\x12(\n\x10parent_bank_hash\x18\x0b \x01(\x0cR\x0eparentBankHash\x12$\n\x0eparent_lt_hash\x18\x0c \x01(\x0cR\x0cparentLtHash\x12\x34\n\x16parent_signature_count\x18\r \x01(\x04R\x14parentSignatureCount\x12L\n\x0e\x65poch_schedule\x18\x0e \x01(\x0b\x32%.org.solana.sealevel.v1.EpochScheduleR\repochSchedule\x12>\n\x08\x66\x65\x61tures\x18\x10 \x01(\x0b\x32".org.solana.sealevel.v1.FeatureSetR\x08\x66\x65\x61tures\x12R\n\x11vote_accounts_t_1\x18\x11 \x03(\x0b\x32\'.org.solana.sealevel.v1.PrevVoteAccountR\x0evoteAccountsT1\x12R\n\x11vote_accounts_t_2\x18\x12 \x03(\x0b\x32\'.org.solana.sealevel.v1.PrevVoteAccountR\x0evoteAccountsT2J\x04\x08\x0f\x10\x10J\x04\x08\x13\x10\x14"\xdd\x01\n\x0c\x42lockContext\x12@\n\x04txns\x18\x01 \x03(\x0b\x32,.org.solana.sealevel.v1.SanitizedTransactionR\x04txns\x12\x42\n\x0b\x61\x63\x63t_states\x18\x02 \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\nacctStates\x12\x35\n\x04\x62\x61nk\x18\x06 \x01(\x0b\x32!.org.solana.sealevel.v1.BlockBankR\x04\x62\x61nkJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06"\x8f\x02\n\x15LeaderScheduleEffects\x12#\n\rleaders_epoch\x18\x01 \x01(\x04R\x0cleadersEpoch\x12#\n\rleaders_slot0\x18\x02 \x01(\x04R\x0cleadersSlot0\x12(\n\x10leaders_slot_cnt\x18\x03 \x01(\x04R\x0eleadersSlotCnt\x12$\n\x0eleader_pub_cnt\x18\x04 \x01(\x04R\x0cleaderPubCnt\x12*\n\x11leaders_sched_cnt\x18\x05 \x01(\x04R\x0fleadersSchedCnt\x12\x30\n\x14leader_schedule_hash\x18\x06 \x01(\x0cR\x12leaderScheduleHash"\x99\x02\n\x0c\x42lockEffects\x12\x1b\n\thas_error\x18\x01 \x01(\x08R\x08hasError\x12/\n\x13slot_capitalization\x18\x02 \x01(\x04R\x12slotCapitalization\x12\x1b\n\tbank_hash\x18\x03 \x01(\x0cR\x08\x62\x61nkHash\x12\x46\n\x0c\x63ost_tracker\x18\x04 \x01(\x0b\x32#.org.solana.sealevel.v1.CostTrackerR\x0b\x63ostTracker\x12V\n\x0fleader_schedule\x18\x05 \x01(\x0b\x32-.org.solana.sealevel.v1.LeaderScheduleEffectsR\x0eleaderSchedule"\xcd\x01\n\x0c\x42lockFixture\x12\x43\n\x08metadata\x18\x01 \x01(\x0b\x32\'.org.solana.sealevel.v1.FixtureMetadataR\x08metadata\x12:\n\x05input\x18\x02 \x01(\x0b\x32$.org.solana.sealevel.v1.BlockContextR\x05input\x12<\n\x06output\x18\x03 \x01(\x0b\x32$.org.solana.sealevel.v1.BlockEffectsR\x06output*2\n\x12VoteAccountVersion\x12\x0c\n\x08V1_14_11\x10\x00\x12\x06\n\x02V3\x10\x01\x12\x06\n\x02V4\x10\x02*0\n\x12WarmupCooldownRate\x12\x0c\n\x08RATE_025\x10\x00\x12\x0c\n\x08RATE_009\x10\x01\x62\x06proto3' ) _globals = globals() @@ -32,10 +32,10 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "block_pb2", _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None - _globals["_VOTEACCOUNTVERSION"]._serialized_start = 3100 - _globals["_VOTEACCOUNTVERSION"]._serialized_end = 3150 - _globals["_WARMUPCOOLDOWNRATE"]._serialized_start = 3152 - _globals["_WARMUPCOOLDOWNRATE"]._serialized_end = 3200 + _globals["_VOTEACCOUNTVERSION"]._serialized_start = 2629 + _globals["_VOTEACCOUNTVERSION"]._serialized_end = 2679 + _globals["_WARMUPCOOLDOWNRATE"]._serialized_start = 2681 + _globals["_WARMUPCOOLDOWNRATE"]._serialized_end = 2729 _globals["_COSTTRACKER"]._serialized_start = 81 _globals["_COSTTRACKER"]._serialized_end = 154 _globals["_INFLATION"]._serialized_start = 157 @@ -44,16 +44,14 @@ _globals["_EPOCHCREDIT"]._serialized_end = 415 _globals["_PREVVOTEACCOUNT"]._serialized_start = 418 _globals["_PREVVOTEACCOUNT"]._serialized_end = 692 - _globals["_STAKEDELEGATION"]._serialized_start = 695 - _globals["_STAKEDELEGATION"]._serialized_end = 1033 - _globals["_BLOCKBANK"]._serialized_start = 1036 - _globals["_BLOCKBANK"]._serialized_end = 2108 - _globals["_BLOCKCONTEXT"]._serialized_start = 2111 - _globals["_BLOCKCONTEXT"]._serialized_end = 2332 - _globals["_LEADERSCHEDULEEFFECTS"]._serialized_start = 2335 - _globals["_LEADERSCHEDULEEFFECTS"]._serialized_end = 2606 - _globals["_BLOCKEFFECTS"]._serialized_start = 2609 - _globals["_BLOCKEFFECTS"]._serialized_end = 2890 - _globals["_BLOCKFIXTURE"]._serialized_start = 2893 - _globals["_BLOCKFIXTURE"]._serialized_end = 3098 + _globals["_BLOCKBANK"]._serialized_start = 695 + _globals["_BLOCKBANK"]._serialized_end = 1637 + _globals["_BLOCKCONTEXT"]._serialized_start = 1640 + _globals["_BLOCKCONTEXT"]._serialized_end = 1861 + _globals["_LEADERSCHEDULEEFFECTS"]._serialized_start = 1864 + _globals["_LEADERSCHEDULEEFFECTS"]._serialized_end = 2135 + _globals["_BLOCKEFFECTS"]._serialized_start = 2138 + _globals["_BLOCKEFFECTS"]._serialized_end = 2419 + _globals["_BLOCKFIXTURE"]._serialized_start = 2422 + _globals["_BLOCKFIXTURE"]._serialized_end = 2627 # @@protoc_insertion_point(module_scope) diff --git a/src/test_suite/protos/context_pb2.py b/src/test_suite/protos/context_pb2.py index bbdf534..718dfec 100644 --- a/src/test_suite/protos/context_pb2.py +++ b/src/test_suite/protos/context_pb2.py @@ -19,7 +19,7 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\rcontext.proto\x12\x16org.solana.sealevel.v1"(\n\nFeatureSet\x12\x1a\n\x08\x66\x65\x61tures\x18\x01 \x03(\x06R\x08\x66\x65\x61tures"\x97\x01\n\tAcctState\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x1a\n\x08lamports\x18\x02 \x01(\x04R\x08lamports\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\x12\x1e\n\nexecutable\x18\x04 \x01(\x08R\nexecutable\x12\x14\n\x05owner\x18\x06 \x01(\x0cR\x05ownerJ\x04\x08\x05\x10\x06J\x04\x08\x07\x10\x08"\xae\x02\n\x0f\x46\x65\x65RateGovernor\x12\x41\n\x1dtarget_lamports_per_signature\x18\x01 \x01(\x04R\x1atargetLamportsPerSignature\x12;\n\x1atarget_signatures_per_slot\x18\x02 \x01(\x04R\x17targetSignaturesPerSlot\x12;\n\x1amin_lamports_per_signature\x18\x03 \x01(\x04R\x17minLamportsPerSignature\x12;\n\x1amax_lamports_per_signature\x18\x04 \x01(\x04R\x17maxLamportsPerSignature\x12!\n\x0c\x62urn_percent\x18\x05 \x01(\rR\x0b\x62urnPercent"\xe8\x01\n\rEpochSchedule\x12&\n\x0fslots_per_epoch\x18\x01 \x01(\x04R\rslotsPerEpoch\x12=\n\x1bleader_schedule_slot_offset\x18\x02 \x01(\x04R\x18leaderScheduleSlotOffset\x12\x16\n\x06warmup\x18\x03 \x01(\x08R\x06warmup\x12,\n\x12\x66irst_normal_epoch\x18\x04 \x01(\x04R\x10\x66irstNormalEpoch\x12*\n\x11\x66irst_normal_slot\x18\x05 \x01(\x04R\x0f\x66irstNormalSlot"\x8f\x01\n\x04Rent\x12\x33\n\x16lamports_per_byte_year\x18\x01 \x01(\x04R\x13lamportsPerByteYear\x12/\n\x13\x65xemption_threshold\x18\x02 \x01(\x01R\x12\x65xemptionThreshold\x12!\n\x0c\x62urn_percent\x18\x03 \x01(\rR\x0b\x62urnPercent"i\n\x13\x42lockhashQueueEntry\x12\x1c\n\tblockhash\x18\x01 \x01(\x0cR\tblockhash\x12\x34\n\x16lamports_per_signature\x18\x02 \x01(\x04R\x14lamportsPerSignatureb\x06proto3' + b'\n\rcontext.proto\x12\x16org.solana.sealevel.v1"(\n\nFeatureSet\x12\x1a\n\x08\x66\x65\x61tures\x18\x01 \x03(\x06R\x08\x66\x65\x61tures"\x97\x01\n\tAcctState\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x1a\n\x08lamports\x18\x02 \x01(\x04R\x08lamports\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\x12\x1e\n\nexecutable\x18\x04 \x01(\x08R\nexecutable\x12\x14\n\x05owner\x18\x06 \x01(\x0cR\x05ownerJ\x04\x08\x05\x10\x06J\x04\x08\x07\x10\x08"\xae\x02\n\x0f\x46\x65\x65RateGovernor\x12\x41\n\x1dtarget_lamports_per_signature\x18\x01 \x01(\x04R\x1atargetLamportsPerSignature\x12;\n\x1atarget_signatures_per_slot\x18\x02 \x01(\x04R\x17targetSignaturesPerSlot\x12;\n\x1amin_lamports_per_signature\x18\x03 \x01(\x04R\x17minLamportsPerSignature\x12;\n\x1amax_lamports_per_signature\x18\x04 \x01(\x04R\x17maxLamportsPerSignature\x12!\n\x0c\x62urn_percent\x18\x05 \x01(\rR\x0b\x62urnPercent"\xe8\x01\n\rEpochSchedule\x12&\n\x0fslots_per_epoch\x18\x01 \x01(\x04R\rslotsPerEpoch\x12=\n\x1bleader_schedule_slot_offset\x18\x02 \x01(\x04R\x18leaderScheduleSlotOffset\x12\x16\n\x06warmup\x18\x03 \x01(\x08R\x06warmup\x12,\n\x12\x66irst_normal_epoch\x18\x04 \x01(\x04R\x10\x66irstNormalEpoch\x12*\n\x11\x66irst_normal_slot\x18\x05 \x01(\x04R\x0f\x66irstNormalSlot"i\n\x13\x42lockhashQueueEntry\x12\x1c\n\tblockhash\x18\x01 \x01(\x0cR\tblockhash\x12\x34\n\x16lamports_per_signature\x18\x02 \x01(\x04R\x14lamportsPerSignatureb\x06proto3' ) _globals = globals() @@ -35,8 +35,6 @@ _globals["_FEERATEGOVERNOR"]._serialized_end = 540 _globals["_EPOCHSCHEDULE"]._serialized_start = 543 _globals["_EPOCHSCHEDULE"]._serialized_end = 775 - _globals["_RENT"]._serialized_start = 778 - _globals["_RENT"]._serialized_end = 921 - _globals["_BLOCKHASHQUEUEENTRY"]._serialized_start = 923 - _globals["_BLOCKHASHQUEUEENTRY"]._serialized_end = 1028 + _globals["_BLOCKHASHQUEUEENTRY"]._serialized_start = 777 + _globals["_BLOCKHASHQUEUEENTRY"]._serialized_end = 882 # @@protoc_insertion_point(module_scope) diff --git a/src/test_suite/protos/txn_pb2.py b/src/test_suite/protos/txn_pb2.py index 8666179..2abd75b 100644 --- a/src/test_suite/protos/txn_pb2.py +++ b/src/test_suite/protos/txn_pb2.py @@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\ttxn.proto\x12\x16org.solana.sealevel.v1\x1a\rcontext.proto\x1a\x0emetadata.proto"\xcd\x01\n\rMessageHeader\x12\x36\n\x17num_required_signatures\x18\x01 \x01(\rR\x15numRequiredSignatures\x12?\n\x1cnum_readonly_signed_accounts\x18\x02 \x01(\rR\x19numReadonlySignedAccounts\x12\x43\n\x1enum_readonly_unsigned_accounts\x18\x03 \x01(\rR\x1bnumReadonlyUnsignedAccounts"o\n\x13\x43ompiledInstruction\x12(\n\x10program_id_index\x18\x01 \x01(\rR\x0eprogramIdIndex\x12\x1a\n\x08\x61\x63\x63ounts\x18\x02 \x03(\rR\x08\x61\x63\x63ounts\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta"\x92\x01\n\x19MessageAddressTableLookup\x12\x1f\n\x0b\x61\x63\x63ount_key\x18\x01 \x01(\x0cR\naccountKey\x12)\n\x10writable_indexes\x18\x02 \x03(\rR\x0fwritableIndexes\x12)\n\x10readonly_indexes\x18\x03 \x03(\rR\x0freadonlyIndexes"\xf6\x02\n\x12TransactionMessage\x12\x1b\n\tis_legacy\x18\x01 \x01(\x08R\x08isLegacy\x12=\n\x06header\x18\x02 \x01(\x0b\x32%.org.solana.sealevel.v1.MessageHeaderR\x06header\x12!\n\x0c\x61\x63\x63ount_keys\x18\x03 \x03(\x0cR\x0b\x61\x63\x63ountKeys\x12)\n\x10recent_blockhash\x18\x05 \x01(\x0cR\x0frecentBlockhash\x12O\n\x0cinstructions\x18\x06 \x03(\x0b\x32+.org.solana.sealevel.v1.CompiledInstructionR\x0cinstructions\x12\x65\n\x15\x61\x64\x64ress_table_lookups\x18\x07 \x03(\x0b\x32\x31.org.solana.sealevel.v1.MessageAddressTableLookupR\x13\x61\x64\x64ressTableLookups"\x9f\x01\n\x14SanitizedTransaction\x12\x44\n\x07message\x18\x01 \x01(\x0b\x32*.org.solana.sealevel.v1.TransactionMessageR\x07message\x12!\n\x0cmessage_hash\x18\x02 \x01(\x0cR\x0bmessageHash\x12\x1e\n\nsignatures\x18\x04 \x03(\x0cR\nsignatures"\xe3\x03\n\x07TxnBank\x12T\n\x0f\x62lockhash_queue\x18\x01 \x03(\x0b\x32+.org.solana.sealevel.v1.BlockhashQueueEntryR\x0e\x62lockhashQueue\x12;\n\x1arbh_lamports_per_signature\x18\x02 \x01(\rR\x17rbhLamportsPerSignature\x12S\n\x11\x66\x65\x65_rate_governor\x18\x03 \x01(\x0b\x32\'.org.solana.sealevel.v1.FeeRateGovernorR\x0f\x66\x65\x65RateGovernor\x12*\n\x11total_epoch_stake\x18\x04 \x01(\x04R\x0ftotalEpochStake\x12L\n\x0e\x65poch_schedule\x18\x05 \x01(\x0b\x32%.org.solana.sealevel.v1.EpochScheduleR\repochSchedule\x12\x30\n\x04rent\x18\x06 \x01(\x0b\x32\x1c.org.solana.sealevel.v1.RentR\x04rent\x12>\n\x08\x66\x65\x61tures\x18\x07 \x01(\x0b\x32".org.solana.sealevel.v1.FeatureSetR\x08\x66\x65\x61turesJ\x04\x08\x08\x10\t"\xe4\x01\n\nTxnContext\x12<\n\x02tx\x18\x01 \x01(\x0b\x32,.org.solana.sealevel.v1.SanitizedTransactionR\x02tx\x12Q\n\x13\x61\x63\x63ount_shared_data\x18\x02 \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\x11\x61\x63\x63ountSharedData\x12\x33\n\x04\x62\x61nk\x18\x06 \x01(\x0b\x32\x1f.org.solana.sealevel.v1.TxnBankR\x04\x62\x61nkJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06"d\n\nFeeDetails\x12\'\n\x0ftransaction_fee\x18\x01 \x01(\x04R\x0etransactionFee\x12-\n\x12prioritization_fee\x18\x02 \x01(\x04R\x11prioritizationFee"\xff\x04\n\tTxnResult\x12\x1a\n\x08\x65xecuted\x18\x01 \x01(\x08R\x08\x65xecuted\x12-\n\x12sanitization_error\x18\x02 \x01(\x08R\x11sanitizationError\x12\x13\n\x05is_ok\x18\x05 \x01(\x08R\x04isOk\x12\x16\n\x06status\x18\x06 \x01(\rR\x06status\x12+\n\x11instruction_error\x18\x07 \x01(\rR\x10instructionError\x12\x36\n\x17instruction_error_index\x18\x08 \x01(\rR\x15instructionErrorIndex\x12!\n\x0c\x63ustom_error\x18\t \x01(\rR\x0b\x63ustomError\x12\x1f\n\x0breturn_data\x18\n \x01(\x0cR\nreturnData\x12%\n\x0e\x65xecuted_units\x18\x0b \x01(\x04R\rexecutedUnits\x12\x43\n\x0b\x66\x65\x65_details\x18\x0c \x01(\x0b\x32".org.solana.sealevel.v1.FeeDetailsR\nfeeDetails\x12\x39\n\x19loaded_accounts_data_size\x18\r \x01(\x04R\x16loadedAccountsDataSize\x12N\n\x11modified_accounts\x18\x0e \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\x10modifiedAccounts\x12N\n\x11rollback_accounts\x18\x0f \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\x10rollbackAccountsJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05"\xc6\x01\n\nTxnFixture\x12\x43\n\x08metadata\x18\x01 \x01(\x0b\x32\'.org.solana.sealevel.v1.FixtureMetadataR\x08metadata\x12\x38\n\x05input\x18\x02 \x01(\x0b\x32".org.solana.sealevel.v1.TxnContextR\x05input\x12\x39\n\x06output\x18\x03 \x01(\x0b\x32!.org.solana.sealevel.v1.TxnResultR\x06outputb\x06proto3' + b'\n\ttxn.proto\x12\x16org.solana.sealevel.v1\x1a\rcontext.proto\x1a\x0emetadata.proto"\xcd\x01\n\rMessageHeader\x12\x36\n\x17num_required_signatures\x18\x01 \x01(\rR\x15numRequiredSignatures\x12?\n\x1cnum_readonly_signed_accounts\x18\x02 \x01(\rR\x19numReadonlySignedAccounts\x12\x43\n\x1enum_readonly_unsigned_accounts\x18\x03 \x01(\rR\x1bnumReadonlyUnsignedAccounts"o\n\x13\x43ompiledInstruction\x12(\n\x10program_id_index\x18\x01 \x01(\rR\x0eprogramIdIndex\x12\x1a\n\x08\x61\x63\x63ounts\x18\x02 \x03(\rR\x08\x61\x63\x63ounts\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta"\x92\x01\n\x19MessageAddressTableLookup\x12\x1f\n\x0b\x61\x63\x63ount_key\x18\x01 \x01(\x0cR\naccountKey\x12)\n\x10writable_indexes\x18\x02 \x03(\rR\x0fwritableIndexes\x12)\n\x10readonly_indexes\x18\x03 \x03(\rR\x0freadonlyIndexes"\xf6\x02\n\x12TransactionMessage\x12\x1b\n\tis_legacy\x18\x01 \x01(\x08R\x08isLegacy\x12=\n\x06header\x18\x02 \x01(\x0b\x32%.org.solana.sealevel.v1.MessageHeaderR\x06header\x12!\n\x0c\x61\x63\x63ount_keys\x18\x03 \x03(\x0cR\x0b\x61\x63\x63ountKeys\x12)\n\x10recent_blockhash\x18\x05 \x01(\x0cR\x0frecentBlockhash\x12O\n\x0cinstructions\x18\x06 \x03(\x0b\x32+.org.solana.sealevel.v1.CompiledInstructionR\x0cinstructions\x12\x65\n\x15\x61\x64\x64ress_table_lookups\x18\x07 \x03(\x0b\x32\x31.org.solana.sealevel.v1.MessageAddressTableLookupR\x13\x61\x64\x64ressTableLookups"\x9f\x01\n\x14SanitizedTransaction\x12\x44\n\x07message\x18\x01 \x01(\x0b\x32*.org.solana.sealevel.v1.TransactionMessageR\x07message\x12!\n\x0cmessage_hash\x18\x02 \x01(\x0cR\x0bmessageHash\x12\x1e\n\nsignatures\x18\x04 \x03(\x0cR\nsignatures"\xb7\x03\n\x07TxnBank\x12T\n\x0f\x62lockhash_queue\x18\x01 \x03(\x0b\x32+.org.solana.sealevel.v1.BlockhashQueueEntryR\x0e\x62lockhashQueue\x12;\n\x1arbh_lamports_per_signature\x18\x02 \x01(\rR\x17rbhLamportsPerSignature\x12S\n\x11\x66\x65\x65_rate_governor\x18\x03 \x01(\x0b\x32\'.org.solana.sealevel.v1.FeeRateGovernorR\x0f\x66\x65\x65RateGovernor\x12*\n\x11total_epoch_stake\x18\x04 \x01(\x04R\x0ftotalEpochStake\x12L\n\x0e\x65poch_schedule\x18\x05 \x01(\x0b\x32%.org.solana.sealevel.v1.EpochScheduleR\repochSchedule\x12>\n\x08\x66\x65\x61tures\x18\x07 \x01(\x0b\x32".org.solana.sealevel.v1.FeatureSetR\x08\x66\x65\x61turesJ\x04\x08\x06\x10\x07J\x04\x08\x08\x10\t"\xe4\x01\n\nTxnContext\x12<\n\x02tx\x18\x01 \x01(\x0b\x32,.org.solana.sealevel.v1.SanitizedTransactionR\x02tx\x12Q\n\x13\x61\x63\x63ount_shared_data\x18\x02 \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\x11\x61\x63\x63ountSharedData\x12\x33\n\x04\x62\x61nk\x18\x06 \x01(\x0b\x32\x1f.org.solana.sealevel.v1.TxnBankR\x04\x62\x61nkJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06"d\n\nFeeDetails\x12\'\n\x0ftransaction_fee\x18\x01 \x01(\x04R\x0etransactionFee\x12-\n\x12prioritization_fee\x18\x02 \x01(\x04R\x11prioritizationFee"\xff\x04\n\tTxnResult\x12\x1a\n\x08\x65xecuted\x18\x01 \x01(\x08R\x08\x65xecuted\x12-\n\x12sanitization_error\x18\x02 \x01(\x08R\x11sanitizationError\x12\x13\n\x05is_ok\x18\x05 \x01(\x08R\x04isOk\x12\x16\n\x06status\x18\x06 \x01(\rR\x06status\x12+\n\x11instruction_error\x18\x07 \x01(\rR\x10instructionError\x12\x36\n\x17instruction_error_index\x18\x08 \x01(\rR\x15instructionErrorIndex\x12!\n\x0c\x63ustom_error\x18\t \x01(\rR\x0b\x63ustomError\x12\x1f\n\x0breturn_data\x18\n \x01(\x0cR\nreturnData\x12%\n\x0e\x65xecuted_units\x18\x0b \x01(\x04R\rexecutedUnits\x12\x43\n\x0b\x66\x65\x65_details\x18\x0c \x01(\x0b\x32".org.solana.sealevel.v1.FeeDetailsR\nfeeDetails\x12\x39\n\x19loaded_accounts_data_size\x18\r \x01(\x04R\x16loadedAccountsDataSize\x12N\n\x11modified_accounts\x18\x0e \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\x10modifiedAccounts\x12N\n\x11rollback_accounts\x18\x0f \x03(\x0b\x32!.org.solana.sealevel.v1.AcctStateR\x10rollbackAccountsJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05"\xc6\x01\n\nTxnFixture\x12\x43\n\x08metadata\x18\x01 \x01(\x0b\x32\'.org.solana.sealevel.v1.FixtureMetadataR\x08metadata\x12\x38\n\x05input\x18\x02 \x01(\x0b\x32".org.solana.sealevel.v1.TxnContextR\x05input\x12\x39\n\x06output\x18\x03 \x01(\x0b\x32!.org.solana.sealevel.v1.TxnResultR\x06outputb\x06proto3' ) _globals = globals() @@ -42,13 +42,13 @@ _globals["_SANITIZEDTRANSACTION"]._serialized_start = 916 _globals["_SANITIZEDTRANSACTION"]._serialized_end = 1075 _globals["_TXNBANK"]._serialized_start = 1078 - _globals["_TXNBANK"]._serialized_end = 1561 - _globals["_TXNCONTEXT"]._serialized_start = 1564 - _globals["_TXNCONTEXT"]._serialized_end = 1792 - _globals["_FEEDETAILS"]._serialized_start = 1794 - _globals["_FEEDETAILS"]._serialized_end = 1894 - _globals["_TXNRESULT"]._serialized_start = 1897 - _globals["_TXNRESULT"]._serialized_end = 2536 - _globals["_TXNFIXTURE"]._serialized_start = 2539 - _globals["_TXNFIXTURE"]._serialized_end = 2737 + _globals["_TXNBANK"]._serialized_end = 1517 + _globals["_TXNCONTEXT"]._serialized_start = 1520 + _globals["_TXNCONTEXT"]._serialized_end = 1748 + _globals["_FEEDETAILS"]._serialized_start = 1750 + _globals["_FEEDETAILS"]._serialized_end = 1850 + _globals["_TXNRESULT"]._serialized_start = 1853 + _globals["_TXNRESULT"]._serialized_end = 2492 + _globals["_TXNFIXTURE"]._serialized_start = 2495 + _globals["_TXNFIXTURE"]._serialized_end = 2693 # @@protoc_insertion_point(module_scope) diff --git a/tests/test_fb_regeneration.py b/tests/test_fb_regeneration.py index 61bbfca..4d00847 100644 --- a/tests/test_fb_regeneration.py +++ b/tests/test_fb_regeneration.py @@ -237,13 +237,13 @@ def _build_effects_bytes(self, effects_dict): FB_Effects_mod.Start(builder) FB_Effects_mod.AddErrCode(builder, effects_dict.get("err_code", 0)) if rodata_hash and len(rodata_hash) >= 8: - offset = FB_XXHash_mod.CreateXXHash(builder, list(rodata_hash[:8])) + offset = FB_XXHash_mod.CreateXxhash(builder, list(rodata_hash[:8])) FB_Effects_mod.AddRodataHash(builder, offset) FB_Effects_mod.AddTextCnt(builder, effects_dict.get("text_cnt", 0)) FB_Effects_mod.AddTextOff(builder, effects_dict.get("text_off", 0)) FB_Effects_mod.AddEntryPc(builder, effects_dict.get("entry_pc", 0)) if calldests_hash and len(calldests_hash) >= 8: - offset = FB_XXHash_mod.CreateXXHash(builder, list(calldests_hash[:8])) + offset = FB_XXHash_mod.CreateXxhash(builder, list(calldests_hash[:8])) FB_Effects_mod.AddCalldestsHash(builder, offset) effects_offset = FB_Effects_mod.End(builder) @@ -812,13 +812,13 @@ def _build_effects_bytes(self, effects_dict): FB_Effects_mod.Start(builder) FB_Effects_mod.AddErrCode(builder, effects_dict.get("err_code", 0)) if rodata_hash and len(rodata_hash) >= 8: - offset = FB_XXHash_mod.CreateXXHash(builder, list(rodata_hash[:8])) + offset = FB_XXHash_mod.CreateXxhash(builder, list(rodata_hash[:8])) FB_Effects_mod.AddRodataHash(builder, offset) FB_Effects_mod.AddTextCnt(builder, effects_dict.get("text_cnt", 0)) FB_Effects_mod.AddTextOff(builder, effects_dict.get("text_off", 0)) FB_Effects_mod.AddEntryPc(builder, effects_dict.get("entry_pc", 0)) if calldests_hash and len(calldests_hash) >= 8: - offset = FB_XXHash_mod.CreateXXHash(builder, list(calldests_hash[:8])) + offset = FB_XXHash_mod.CreateXxhash(builder, list(calldests_hash[:8])) FB_Effects_mod.AddCalldestsHash(builder, offset) effects_offset = FB_Effects_mod.End(builder)