Skip to content
This repository was archived by the owner on Mar 8, 2023. It is now read-only.

Ankr network#1

Open
ghost wants to merge 267 commits into
Ankr-network:BEP8_modifyfrom
bnb-chain:master
Open

Ankr network#1
ghost wants to merge 267 commits into
Ankr-network:BEP8_modifyfrom
bnb-chain:master

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Sep 18, 2022

Ankr network

allformless and others added 30 commits January 27, 2026 17:48
* BEP-658: Hardfork Meta-Osaka/Mendel

* add summary

* adjust format

* EIPs-->BEPs

* change type of bep-658 to Information

* fix readme

* Reject --> Rejected

* add BEP-657

* fix Description
Corrected links in the motivation section for clarity.
* feat: support bep-652 analysis doc

* fix: fix table of distribution
* BEP-670: Short Block Interval Phase Four: 250ms

* BEP-670: Short Block Interval Phase Four: 250ms
* BEP-667.md: update finality analysis

* BEP-667.md: update finality analysis

* BEP-667.md: update finality analysis

* BEP-667.md: update finality analysis

* BEP-667.md: update finality analysis
* BEP-675: Builder-Proposed Block with Validator Blind Signing

* fix: fix validator description

* fix: adjust bid header

* fix: improve bep description

* fix: add new slash mechanism

* improve bep description
* feat: add improve bep-675 perforamce analysiså

* fix: fix the improve rate
…or on Precompile (#682)

* BEP-682.md: Enforce Unique Validators in CometBFT Light Block Validation Precompile

* BEP-682.md: Enforce Unique Validators in CometBFT Light Block Validation Precompile

* BEP-682.md: Enforce Unique Validators in CometBFT Light Block Validation Precompile
Promote TransferWithUIAmount from OPTIONAL to REQUIRED in the core
IScaledUIAmount interface, ensuring indexers can always record
UI-adjusted transfer amounts without a separate multiplier lookup.
…escriptions

- Add EIP-8056 vs BEP-677 scope boundary statement and source-of-requirements table
- Define return values for newUIMultiplier()/effectiveAt() when no pending change exists
- Define return values for pendingMultiplier() when hasPendingMultiplier() is false
- Correct mulDiv overflow and precision-loss characterization in §7.1 and §7.5

Made-with: Cursor
…able variants

Update §4.7 to reflect the current recommended deployment path:
ERC8056TokenUpgradeable (BeaconProxy) replaces the deprecated ScaledUIToken.
Also correct Solidity version (^0.8.24 not ^0.8.20) and add rounding direction
and extreme-multiplier sentinel notes inline with the reference impl description.
…try in §7.5

Refs PashovAuditGroup/BNBChain_April26_MERGED#2

Append a paragraph to §7.5 warning that fromUIAmount(toUIAmount(x)) <= x
and that conversion helpers must not be used for internal accounting.
The upstream EIP-8056 §4.3 interface does not specify rounding; this note
sits in BSC Security Considerations where implementation guidance is appropriate.
…nale and §7.2

Refs PashovAuditGroup/BNBChain_April26_MERGED#3

EIP-8056 leaves scheduling entirely to the implementer, so acceleration is
implementation-defined behavior — appropriate for BEP-677 Security Considerations.

- §5 Rationale: append advisory note that the notice window can be shortened
  by a subsequent overwrite; integrators must react to UIMultiplierChangeOverwritten
- §7.2: add "Pending change acceleration" sub-section with the _beforeMultiplierUpdate
  override pattern that rejects acceleration, consistent with the contract NatDoc
…sentinel pattern in §6

Refs PashovAuditGroup/BNBChain_April26_MERGED#4

Restates in BSC adoption language the EIP-8056 backwards-compatibility
requirement that emitting TransferWithUIAmount must never cause the
underlying transfer to revert. Recommends the uiAmount=0 sentinel pattern
for extreme-multiplier overflow, cross-referencing §4.7 for the reference
implementation details.

This does not add new normative requirements to upstream EIP-8056 §4.1;
it only makes the existing backwards-compat MUST explicit for BSC adopters.
Refs PashovAuditGroup/BNBChain_April26_MERGED#1

The reference implementation emits UIMultiplierUpdated(0, 1e18, block.timestamp)
once during initialization to give indexers a deterministic event-stream anchor.
The oldMultiplier == 0 sentinel is safe because the runtime _validateMultiplier
invariant (> 0) prevents 0 from appearing in any post-init emission.

Documented in §4.7 (Reference Implementation) only, not in upstream EIP-8056
§4.1, to respect the upstream/downstream relationship (BEP-677 §2 Abstract).
Future work: propose this init-emission clarification to ethereum/ERCs upstream.
Refs review 2.1: remove the §4.7 line referencing the ERC8056Base /
ScaledUIToken non-upgradeable variants. These contracts have been
deleted from the reference implementation repository
(bep-677-contracts d343f15) and the line is now stale.

Refs review 2.2: add §7.6 "Storage Layout and Upgrade-Collision Risk"
with inheritor-facing guidance for upgradeable deployments — covering
layout-preservation MUSTs, the OZ validateUpgrade workflow shipped
with the reference implementation, and re-validation when the upstream
base consumes gap slots.
Since setUIMultiplier requires effectiveAtTimestamp > block.timestamp,
no genuine pending state has effectiveAt == 0. The (0, 0) tuple is
therefore an unambiguous "no pending" signal — clients MAY check it
directly, or call hasPendingMultiplier() for an explicit boolean check.
BEP-677: Implement EIP-8056 Scaled UI Amount
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants