feat: upgrade @railgun-community/wallet to 10.9.0, handle new EIP-7702 transaction type - #97
Closed
munikes wants to merge 17 commits into
Closed
feat: upgrade @railgun-community/wallet to 10.9.0, handle new EIP-7702 transaction type#97munikes wants to merge 17 commits into
munikes wants to merge 17 commits into
Conversation
The BNB address (0xA649325...CE23F) was mislabeled as 'WETH' in BLUECHIP_POLY, and is bridged via the Multichain bridge which has been defunct since its 2023 exploit. It has $0 price/liquidity on PolygonScan and never resolves a price via CoinGecko. No live, liquid BNB representation currently exists on Polygon PoS worth including as a fee token, so this removes the entry entirely rather than relabeling it.
TokenAddressBSC.WBNB (0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c) was labeled with symbol 'WETH' in BLUECHIP_BSC. The token itself is a legitimate, liquid asset and prices resolve fine regardless (price lookups are by address, not symbol), but the label is misleading in logs and any UI that surfaces the symbol.
coingeckoPriceLookup was making one HTTP request per token address in a loop with a 250ms delay, despite CoinGecko's simple/token_price endpoint natively supporting comma-separated contract_addresses in a single call. For a broadcaster running 3 networks with ~6-8 tokens each, this meant ~20 requests per refresh cycle (every ~60s) instead of 3 — burning through the free Demo tier's 10,000 requests/month quota in about 10 hours of uptime. Also lowered batchSize from 50 to 30 to match CoinGecko's documented Demo tier limit of 30 addresses per request (50 would only be safe on paid tiers).
FEI: Fei Protocol officially dissolved in August 2022 (Tribe DAO voted to redeem FEI->DAI and wind down operations). Observed in production: CoinGecko price for this token gets stuck/fails to refresh for 25+ minutes at a stretch while every other configured token refreshes normally each cycle. RENBTC: the backing bridge (RenVM) shut down in late 2022 following the Alameda/FTX collapse, with no active development since. On-chain volume is negligible (~$3/24h as observed), making it unsuitable as a fee token even though it still resolves a price. Neither token is a good candidate for fee collection: FEI is a defunct stablecoin and RENBTC is functionally illiquid.
… dead cluster 0 topic
…2 transaction type
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Author
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.
Upgrades @railgun-community/wallet from 10.8.1 to 10.9.0 and @railgun-community/shared-models from 8.0.0 to 8.0.1.
The newer SDK adds EIP-7702 support, which introduces two breaking type changes: BroadcasterRawParamsTransact became a discriminated union (COMMON | TX7702) keyed on transactType, and EVMGasType gained Type4. Together these produce 7 compile errors across 4 files.
This PR does not implement EIP-7702 relaying — it makes the broadcaster reject those requests explicitly rather than assuming the old COMMON-only shape:
Verified with the full build pipeline (tsc + tsc-alias) and running in production on Ethereum mainnet: a real relayed transaction completed end-to-end after the upgrade, with reliability incrementing normally.