Skip to content

llo/dev/v31: limits, fixes and documentation - #277

Open
brunotm wants to merge 102 commits into
masterfrom
DS-3912-33496-llo-fixes
Open

brunotm wants to merge 102 commits into
masterfrom
DS-3912-33496-llo-fixes

Conversation

@brunotm

@brunotm brunotm commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

No description provided.

brunotm added 30 commits October 9, 2026 12:50
Add MaxTotalTWAPCalls, enforced on admission through an optional
TWAPCounter codec interface. Compute TWAP from observed seconds instead
of one bucket per window second, and charge TWAP windows in the
evaluation weight.
Replace ExpTaylor with expDecimal, which halves the argument below
1/256, sums the series there and squares back, in scaled integer
arithmetic. Use it for exp and for the fractional part of a power,
keeping the library's structure and precisions.
Replace decimal.Ln with lnDecimal, which reduces the argument to within
a factor of sqrt(10) of 1 and runs Halley's method on expDecimal from
an exact starting point. Remove the transcendental lock, as no
production path reaches shopspring/decimal's shared factorial cache.
…case

Interpolate TWAP gaps with a direct logarithm and exponential
Collect the free identifiers of each expression during History analysis
and cache them with it. ValidateChannelExpressions now rejects any name
that is not a default function, observations_timestamp, or a stream the
channel observes, with ErrUnknownIdentifier.
@github-actions

Copy link
Copy Markdown
Contributor

👋 brunotm, thanks for creating this pull request!

To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team.

Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks!

@brunotm brunotm changed the title llo/dev/v31: limits and fixes llo/dev/v31: limits, fixes and documentation Oct 15, 2026
@brunotm
brunotm force-pushed the DS-3912-33496-llo-fixes branch from 6bf07c7 to 6bf2af9 Compare October 16, 2026 20:38
…ion in the precursor

- Add protocol.SolidityInt, ABIElement/ABISpec, ABIPayload and
  CheckEncodableValues so the reportability check and the EVM codecs share
  one range rule and one payload layout.
- Make a channel with a value outside its encoded integer range unreportable,
  so the watermark holds until the value is back in range. Skip backfill rows
  that can never be encoded.
- Decide reportability once in StateTransition and carry it in the precursor
  as reportableChannelIDs, replacing supportByFormat. Reports emits exactly
  those channels. Pass codec support as a parameter instead of a precursor
  field.
- Carry only the aggregates the reportable channels read in the precursor.
- Reject out of range int192 prices and uint192 fees at encode, since
  abi.Pack wraps them silently.
- Add VerifyForAdmission checks for non integer ABI types, expirationWindow
  above one year, Streamlined layouts over the uint16 length prefix and a zero
  PremiumLegacy multiplier.
- Move ubig to llo/ubig so protocol can use it.
@brunotm
brunotm force-pushed the DS-3912-33496-llo-fixes branch from 499120b to 924866a Compare October 21, 2026 11:35
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.

1 participant