Skip to content

Feat/merge with dev - #367

Merged
dhaval-supraoracles merged 33 commits into
issue/framework_upgrade_v1.34.0from
feat/merge_with_dev
Jul 22, 2026
Merged

dhaval-supraoracles merged 33 commits into
issue/framework_upgrade_v1.34.0from
feat/merge_with_dev

Conversation

@dhaval-supraoracles

Copy link
Copy Markdown

No description provided.

aregng and others added 25 commits December 5, 2025 12:02
… cycle suspension (#313)

- If pending system task is cancelled, the task index is removed from
the cached list of system tasks

- When cycle suspened then system tasks are also included in the removed
tasks list of the reported error.

Co-authored-by: Aregnaz Harutyunyan <>
Co-authored-by: Saurabh Joshi <sjoshi@supra.com>
Co-authored-by: Aregnaz Harutyunyan <>
* correction on cli command usage (2532)

* Correction on the example of --type-args
* add update_unlocking_schedule_unchecked

* add scenario that non admin can not invoke schedule update

* add vesting delay method for admin (#325)

Co-authored-by: Saurabh Joshi <sjoshi@supra.com>

---------

Co-authored-by: Saurabh Joshi <sjoshi@supra.com>
Co-authored-by: Saurabh Joshi <sjoshi@supra.com>
…roperly when tasks are stopped (#329)

* [AN-Issue-2637] Unlocked valid cycle fee and updated registry state properly when tasks are stopped

* Fixed comment

---------

Co-authored-by: Aregnaz Harutyunyan <>
Co-authored-by: Supra-RaghulRajeshR <r.rajesh@supraoracle.com>
* WIP: adding leader ban registry module in supra framework

* WIP: Resolve comments and added further implementation

* resolved comments

* Fixed compilation issue

* resolved comments

* Minor formatiing

* added config tests

* resolved comments

* resolved comments

* added few more cases

* resolved comments + formatted with movefmt

* updated with probation period

* added docs from comments and removed reinstate proposer

* updated the flow for expiration of bans
* update validator pub keys to support dkg

* adds blockmetadata flag

* featureflag for blockmetadataext

* add consenses_key support for past version

* add clan, family committee structure

* update dkg module to handle new dkg

* change dkg.move to use DkgNodeConfig

* on going changes

* moved dkg transaction validation to aptosvm

* adds dkg transaction to post bls pk shares

* removed author from dkgmeta

* supra dkg feature flag

* update validator pub keys to support dkg

* adds blockmetadata flag

* featureflag for blockmetadataext

* add consenses_key support for past version

* add clan, family committee structure

* update dkg module to handle new dkg

* change dkg.move to use DkgNodeConfig

* on going changes

* moved dkg transaction validation to aptosvm

* adds dkg transaction to post bls pk shares

* removed author from dkgmeta

* supra dkg feature flag

* rebase with dev

* add dkg validator transaction validation

* adds family check in dkg transaction validation

* minor

* adds feature gating for validator transaction execution

* update dkg transaction execution validation

* temporarily support old consensus key

* added identity to dkg node config

* added dkg events

* add consensus key rust type

* add dkg event try from for Contract event

* changes to get dkg move state

* added DKGResharing struct

* emit dkg update events

* impl from dkg events to contract event

* to_bytes for consensuskey

* update crypto version

* update crypto

* update crypto

* update crypto

* update crypto

* update crypto

* validator key change and refactor

* Revert "validator key change and refactor"

This reverts commit 3d14a98.

* updated validator public keys and refactoring

* ongoing changes

* add gas params for supra_stdlib

* fmt

* ongoing changes to address comments

* ongoing changes

* minor fixes

* adds new method for ValidatorPublicKeys

* new methods for DkgNodeConfig and DkgCommittee

* update dkg committee to use validator address as identity

* add copyright statements

* Update validator_public_keys.move (#305)

* Update validator_public_keys.move

* Add functions for new CertificateThresholdType constant tags (BCFT and Clan Majority)

* addressing comments

* rename

* fix docs

* minor fix

* resharing config changed to per receiver committee

* add epoch, chain_id in onchainaggcommitments

* update validator committee keys after dkg

* fix test public key

* changes to support arbitrary threshold types

* dkg for validity & quorum keys

* [aptos-labs#2300] Feature flag.

* Sc/task/issue 2242 patch2 (#306)

* add supra bcft cert feature flag

* update md file

* addressing comments

* made compatible with the new key format

* added a fallback to the old format

* parsing ed key by `try_from` instead of bcs

* Update dkg.md

* fixes

* conditional consensus key based on bls flag

* update validator_config to use ValidatorPublicKeys

* update ValidatorPublicKeys to include bcft keys

* update gas ver

* add supra_stdlib gas params to_on_chain_gas_schedule

* add randomness tag to block_prologue_ext

* temporarily mark randomness biasable

* add SUPRA_DKG to default features

* dkg module fixes

* fix dkg transactions error handling in vm

* added dkg config

* dkg handles all bls key types

* remove dkg meta set condition for pk shares

* adds dkg threshold type for receiver committees

* removed error status DKG_META_NOT_SET

* distinguish error code for future/past epochs

* fixed leader ban test cases

* dkg for bcft and clan majority

* update crypto version

* adds next_epoch_validator_consensus_infos_for_dkg

* feat: changes related to the transaction inclusion proof feature (#341)

* feat(types,accumulator): Add features for transactions inclusions and events emissions proofs.

- RLP's `Encodable` trait implementation for Contract Events.
- `get_proof_by_position` method for Merkle Accumulator.

* feat: add `EventV2` api type

* chore: cargo feature optimization

* refactor(aptos-api-types): transformed `Event` to `EventV1` and applied Full-Clone on `EventV2`

* feat: add `hash` in `EventV1` with serialization disabled

* docs: fix oai docs for `EventV1`

* feat(aptos_api_types): add `try_into_v2_events` to convert `ContractEvent` to `EventV2`

* feat: add `SUPRA_TRANSACTIONS_INCLUSION_PROOFS` feature flag

* feat: replace rlp encoding with custom encoding to generate event hash

* chore: replace `alloy` with `sha3` for `Keccak256` impl

* fix: Keccack256 hash implementation using `sha3`

---------

Co-authored-by: Nikita Puzankov <n.puzankov@supraoracles.com>
Co-authored-by: Simon Chen <s.chen@supraoracles.com>

* fix: ensure `hash_bytes` gets updated with finalized hash

* Updated crypto ref to revision containing ref to bicycl-rs with fully-qualified SSH submodule refs.

* update crypto

* Updated minimum GAS_UNIT_PRICE from 100 to 100_000 in accordance with the outcome of https://vote.supra.com/proposal/3. (#344)

* test fixes

* make order of dkg committee consistent with new epoch committee

* Fixed DKG config to account for BCFT flag and added missing threshold. Added comments. Regenerated docs.

* Fixed DKG config and removed unnecessary test.

* Discovered that DKG config is initialised during genesis before feature flags are set, so updated implementation accordingly and added notes. Also fixed supra_governance::reconfigure.

* Formatting.

* Started work towards adding leader ban registry config to genesis. (#346)

* Started work towards adding leader ban registry config to genesis.

* added remaining changes for the leader ban config at genesis

* added deserilization step

* added deserilization step

* added deserilization step

* fixed leader ban registry package for ban parameters

* decoded correct version of params

---------

Co-authored-by: Dhaval Purohit <d.purohit@supraoracles.com>

* Formatting.

* Added TypeTags for UpdateNetworkAndFullnodeAddressesEvent and RotateConsensusKeyEvent.

* Added fixes for leader ban registry view (#350)

* added fixes for leader ban registry view

* fixed the test according to updated changes

* PR comments addressed

* addressing comments

* reverse pending active order for next_validator_consensus_infos

---------

Co-authored-by: simonchen-supra <s.chen@supraoracles.com>
Co-authored-by: Isaac Doidge <i.doidge@supraoracles.com>
Co-authored-by: Mateusz Zając <m.zajac@supraoracles.com>
Co-authored-by: Dhaval Purohit <d.purohit@supraoracles.com>
Co-authored-by: Panchal Vedant <v.panchal@supraoracles.com>
Co-authored-by: Nikita Puzankov <n.puzankov@supraoracles.com>
Co-authored-by: Isaac Doidge <30425649+isaacdoidge@users.noreply.github.com>
* Updated validator public key validation logic to enable registration of new format keys before the related feature flag is active whilst maintaining backwards compatibility with the old format when the flag is off.

* Restored original DKG framework module and move new Supra DKG into new module to restore compatibility with production framework.

* Fixed DKG module names in Rust code. Missed in last commit.

* Made DKG init function public for use in governance scripts.
* [EAN-Issue-2530] Added emv-contracts-details move module

- The module will hold the evm contract names accosiated with the corresponding addresses
- Supra node runtime will utilize this information to retrieve evm block-metadata and automation-registry contract addresses
- Users can retrieve the 0x1::evm_contracts_details::EvmContractsDetails resource to get info on supra native evm contracts

* Addressed review comments

* Addressed license headers

* Fixed TODO and test failures

* Fixed EvnContractName string values

* Addressed review comments

* add evm_config in Move state (#353)

* add evm_config in Move state

* add config validation for required key and value type match

* add test

* remove double negative assert check

* change to EvmScalarCOnfig with everything u128

* minor

* add evm config to encode testnet

* Fixed test

* Fixed build error

* Enabled serde for OnChainEvmConfig required by to be able to cache on-chain-config

* remove nested if

* validate gas used ratio, add other evm parameters

---------

Co-authored-by: Saurabh Joshi <sjoshi@supra.com>
Co-authored-by: Aregnaz Harutyunyan <>

* [Issue-2530] Extended GenesisEvmContract to support function calls as well (#354)

Co-authored-by: Aregnaz Harutyunyan <>

* Fixed evm config initializtion function name

* Fixed the evm-address length value in evm_config.move

* ensure nextest is installed (#358)

Co-authored-by: Saurabh Joshi <sjoshi@supra.com>

* Delete aptos-move/framework/supra-framework/doc/evm_contracts_details.md

* allow smart contract to register automation task (#356)

* allow smart contract to register automation task

* add invalidation method

* tests and invalid task cancellation from runtime

* Report discart output for automated transactions failing validation before execution

- INVALID_AUTOMATION_INNER_PAYLOAD error will be reported in case if entry function validation fails

* Removed redundant function from aptos-vm-viewer

* Addressed review comments

- If automated transasction pre-execution phase fails and SUPRA_AUTOMATION_V2_1 is not enabled, error is reported with kept status
- Generated unit test to cover new flow of automated transaction execution
- Enabled SUPRA_AUTOMATION_V2_1 by default at genesis

* Cosmetic changes

* Addressed review comments

* Added means to register system task from smart contract context

---------

Co-authored-by: Saurabh Joshi <sjoshi@supra.com>
Co-authored-by: Aregnaz Harutyunyan <>

---------

Co-authored-by: Aregnaz Harutyunyan <>
Co-authored-by: Saurabh Joshi <106232965+sjoshisupra@users.noreply.github.com>
Co-authored-by: Saurabh Joshi <sjoshi@supra.com>
Co-authored-by: Aregnaz Harutyunyan <>
* [Evm] Exposed convenience APIs for evm-configs

* Addressed review comment

---------

Co-authored-by: Aregnaz Harutyunyan <>
#369)

* Updated consensus key rotation logic in stake.move to ensure that only static keys are updated. Renamed consensus_public_key functions in ValidatorConfig to indicate deprecation without strictly marking them with the macro.

* Ensured that validators cannot register invalid static public keys.

* Added PoP for BLS multisig validator key. CG key already contains a PoP that is evaluated by the native, and the other keys don't require PoP.

@isaacdoidge isaacdoidge left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of the dev→1.34.0 merge at head aeb003df. The merge itself is largely sound — a three-way audit of the high-risk files (aptos_vm.rs, gas.rs, validator_txns/dkg.rs, both automation processors, the DKG framework modules, gas schedule, Cargo.toml/lock) found no silently dropped hunks from either parent, all dev-era Supra feature PRs (#290, #302, #338, #342, #348/349/351, #352, #355, #361, #366, #368/369) survive on the head, Supra feature flags 88–101 are correctly restored with original discriminants, and Supra gas params are intact (supra_stdlib.rs byte-identical, eth.trie.*/rlp.* preserved, LATEST_GAS_FEATURE_VERSION now 42). No dev-side tests were dropped by conflict resolution.

Beyond the two inline comments (one Critical, one High), items that need decisions:

1. The merge is 4 commits behind fork dev tip; three are correctness/security fixes (their omission looks like cut-point timing, not bad conflict resolution — but they should not ship missing):

  • ce3cebc85a (#5/#6): reachable panic in native_verify_proof_eth_trie — head still has H256::from_slice(&root) (panics on non-32-byte root) at aptos-move/framework/src/natives/cryptography/eth_trie.rs:57 and .unwrap() at :66. Malformed proof input can crash a validator.
  • 20a83be0d4 (#370/#371): exclude unrotated legacy-key validators from the validator set when the v2-key flag is active — absent (is_unrotated_legacy_key has zero occurrences on head). Validator-set safety fix in the same key-validation family this merge restores.
  • 0c94987f (#13, current dev tip): legacy-key validators migrate to v2 and rejoin (builds on #370/#371); its regression test is also absent.
  • 3fecf50d07 (#372): GenesisEvmContract→GenesisEvmTransaction rename for EVM call transactions.
    Recommendation: merge dev tip into this branch once more before landing.

2. Merge-ordering requirement: #303's head alone has Supra feature flags 97–101 clobbered by upstream discriminants (SUPRA_BLS_KEYS/SUPRA_BCFT_CERTIFICATES/SUPRA_DKG/SUPRA_TRANSACTIONS_INCLUSION_PROOFS/SUPRA_AUTOMATION_V2_1) — only this PR fixes that. #303 must not land without this PR; consider merging this branch into #303's so the broken intermediate state is unmergeable.

3. Topology note: private/feat/merge_with_dev (61db493c) is an ancestor of this head, not ahead of it — 912140a7 ("Fixed remaining test cases") is already included. No branch drift.

Findings that pre-date this merge or belong to the upgrade branch itself (persisted OnChainExecutionConfig shuffler compat, missing nonce_validation genesis init, coin.move FA-routing divergence, a pre-existing stake.move duplicate-key-check bug) are being raised on #303 / as separate issues, not here.

@isaacdoidge

Copy link
Copy Markdown

High — merge regression in supra-framework/sources/transaction_validation.move (automated_transaction_prologue_v2, ~line 396 on aeb003df). The file isn't in this PR's diff (the change came in with the earlier merge commit), so posting as a thread comment.

On dev, the prologue asserts automation_registry::has_sender_active_task_with_id_and_type(sender, task_index, task_type) outside the task_type != GST branch — it runs for every automated transaction and is type-aware. On this head, the assert (a) uses the type-less has_sender_active_task_with_id (which hardcodes UST via ..._and_type(sender, task_index, UST)) and (b) sits inside if (task_type != GST).

Consequences:

  1. Gas-less (GST) automated transactions skip the active-task check entirely — a stopped, expired, or cancelled gas-less task's automated transaction still executes instead of being discarded with PROLOGUE_ENO_ACTIVE_AUTOMATED_TASK.
  2. Non-UST charged task types (if/when any exist) are validated against the wrong type.

This looks like a conflict resolution that regressed to a pre-_and_type version of the assert. Fix: restore the dev form — type-aware check, outside the gas-fee branch. A test that registers a GST task, stops it, and asserts its automated transaction is discarded would lock this in.

@isaacdoidge

Copy link
Copy Markdown

Build break: cargo build --release (workspace) fails on the pinned toolchain (1.93.0 per rust-toolchain.toml).

error[E0283]: type annotations needed
   --> ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs:983:44
    |  if supply.current_supply.max_value == u64::MAX.into() { ... }

u64::MAX.into() is ambiguous under 1.93.0's inference (fix: BigDecimal::from(u64::MAX) or an explicit turbofish). This blocks anything that pulls the processor lib into its build graph — including cargo build --release -p aptos (the CLI), which is the first step of unit_test.sh, so the framework test script cannot run as-is on this head. CI presumably doesn't do a full release workspace build, which is why it hasn't tripped.

(Ran into this validating the branch locally; cargo test -p aptos-framework, e2e-move-tests, and language-e2e-testsuite don't depend on it and are running separately.)

@dhaval-supraoracles
dhaval-supraoracles merged commit 638c1f2 into issue/framework_upgrade_v1.34.0 Jul 22, 2026
@dhaval-supraoracles
dhaval-supraoracles deleted the feat/merge_with_dev branch July 22, 2026 07:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants