Repository navigation
chore: sync upstream contracts (2026-10-12) - tests failing, review required - #50
Merged
Merged
Conversation
…ifinance#2531) Since lifinance#2521 the fork mints no manifest and keeps upstream's buildAttestations.json byte for byte. Say so in the new-dev checklist, and note how to keep the pre-commit prettier hook off the Tron bypass when committing a sync-conflict resolution locally. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e#2528) * chore(deps): add oxlint and oxlint-tsgolint, drop unused eslint deps Pin oxlint 1.86.0 and oxlint-tsgolint 7.0.2003 (both >=7 days old). Remove eslint-config-prettier and eslint-import-resolver-typescript, used only by .eslintrc.cjs, which EXSC-1105 replaces. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * feat(lint): run the main TS/JS lint on oxlint instead of ESLint 8 Replace .eslintrc.cjs with .oxlintrc.json (oxlint + oxlint-tsgolint for the type-aware rules) and port @typescript-eslint/naming-convention as the local lifi/naming-convention JS-plugin rule. The plugin honours the existing `eslint-disable-next-line @typescript-eslint/naming-convention` directives, which oxlint would otherwise map to a rule it does not have. lint-staged now runs the Safe-proposal funnel fence as its own entry, since no main config extends it any more. Both fences stay on ESLint. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(scripts): resolve the findings oxlint reports on the current tree - return-await (in-try-catch): await the proposal inside the drain's try/finally blocks so `draining` and the queue are released only after it settles; drop the redundant await in catch blocks with no finally - import/no-duplicates: merge the two `viem` imports in demoEco.ts and diamond-cut-calls.ts - await-thenable: make the Promise.all mapper in checkOffboardingStatusPerNetwork.ts async so every element is a promise - no-unsafe-optional-chaining: bind the optional-chain result in two tests before writing to or calling it Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs: point the agent rules and docs at oxlint for the main lint The rules that named `.eslintrc.cjs` or `bunx eslint` for TS/JS now name `.oxlintrc.json` and `bunx oxlint --type-aware`. Prose about the two fences still says ESLint, since they stay on it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test(funnel-fence): fail clearly when the lint-staged fence entry is missing Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test(lint): pin legacy-directive and edge cases of the naming rule - Cover eslint-disable-line, rule lists, a `--` reason, a directive for another rule and a directive two lines up, plus empty-remainder names (`I`, `Enum`) and an underscore before the `Enum` suffix - Run the TS test lane when only .oxlintrc.json changes - Name oxlint instead of a bare `bunx eslint` in the facet-removal plan Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(lint): fail on deprecated APIs with typescript/no-deprecated import/no-deprecated was an error under ESLint; its oxlint replacement was a warning, so new uses of deprecated APIs passed CI. Make it an error and clear the existing uses: - viem getBytecode -> getCode (alias, same behavior) - MongoDB cursor.forEach -> for await...of - TS ImportClause.isTypeOnly -> phaseModifier === TypeKeyword - Mayan SDK amount in demoMayan.ts: suppressed with a reason, since amountIn64 changes the quote request demoMayanSolana.ts is exempted by a config override instead of an inline directive: it already fails the type check on main, so any edit to it fails the commit hook and validate-scripts. EXSC-1192 repairs it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(lint): enable import/named for JS files plugin:import/recommended ran import/named on JS files, and import/typescript turned it off for TS (the type checker covers it). oxlint has the rule; restore the same split. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…, robinhood (EXSC-1086) (lifinance#2529) * chore(deploy): roll out PaxosTransitFacet v2.0.0 (EXSC-1086) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(deploy): sync diamond logs after PaxosTransitFacet v2.0.0 cut (EXSC-1086) Regenerate the production diamond logs of mainnet, arbitrum and robinhood from the loupe after the timelock operations executed. Keep the DiamondCutFacet/DiamondLoupeFacet 1.0.0 versions from EXSC-1178: their MongoDB rows carry no version, so the regeneration blanks them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Daniela Chybisova <iron.melmel@gmail.com>
…nce#2534) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ifinance#2535) * chore(deploy): deploy LayerSwapFacet v1.0.0 to etherlink (EXSC-1194) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(deploy): sync etherlink diamond log after LayerSwapFacet cut (EXSC-1194) Regenerate the production diamond log of etherlink from the loupe after the timelock operation executed. --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Daniela Chybisova <iron.melmel@gmail.com>
…97) (lifinance#2537) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… crash notices (EXSC-1196) (lifinance#2536) * fix(ci): retry timelock watcher bun install and name the failing step in its crash notice (EXSC-1196) node-hid's prebuilt download times out intermittently, and its source fallback cannot build on the runner, so `bun install` failed the watcher run and posted a crash notice that did not say why. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): make the bun install retry real and harden the crash-notice error line (EXSC-1196) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lifi-action-bot
marked this pull request as draft
October 12, 2026 06:45
gvladika
marked this pull request as ready for review
October 12, 2026 07:29
gvladika
approved these changes
Oct 12, 2026
melianessa
approved these changes
Oct 12, 2026
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
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.
Automated sync from
lifinance/contracts@5a80fc3fmerged cleanly but theforge test suite FAILED against the merge result, so it was not merged into
main. Test log: https://github.com/lifinance/contracts-tron/actions/runs/38213195713This branch carries upstream's history as-is, with no bot-authored commit, so
every commit on it is already signed.
The failure lives in the merge, not in this branch's own history. The branch
is
upstream/mainverbatim and carries none of the fork delta - the breakageonly appears once it is combined with
main, which is exactly what the checksbelow are running (
pull_requestchecks build the merge ref, not the branchtip). Reproduce it the same way before fixing anything:
Fix the breakage on this branch (or coordinate an upstream fix), then merge via
the normal review process.
Important
Merge this PR with a merge commit. Squash and rebase drop the upstream
parent, so the merge base never advances and every later sync re-conflicts
on the entire fork delta.
See the Notion 'Tron deployments' page (section: The contracts-tron Fork) and
EXSC-587/EXSC-603 for the sync rules.