VDB-8: List UXRP market in Core pool on BNB Chain testnet#686
Draft
trumpgpt-bot wants to merge 5 commits into
Draft
VDB-8: List UXRP market in Core pool on BNB Chain testnet#686trumpgpt-bot wants to merge 5 commits into
trumpgpt-bot wants to merge 5 commits into
Conversation
Adds the MockUXRP (18-decimal mintable mock BEP20) token config and the vUXRP Core Pool market config (jump IRM: base 0%, multiplier 6.67%/yr, kink 75%, jump 627%/yr) for deployment on bsctestnet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GitGuru7
reviewed
Jun 23, 2026
| name: "Venus UXRP", | ||
| symbol: "vUXRP", | ||
| asset: "UXRP", | ||
| interestRateModel: { |
Contributor
There was a problem hiding this comment.
Add a comment here that the IRM model is reused.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…bnb-chain-testnet
|
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.
What changed
vips/(branchbot/VDB-8-...)vips/vip-664/bsctestnet.ts— VIP proposal (ProposalType.REGULAR) listing vUXRP in the Core Pool.simulations/vip-664/bsctestnet.ts+abi/(Comptroller, ERC20, ResilientOracle, VToken) — fork simulation.venus-protocol-documentation/deployed-contracts/markets.md— added UXRP (underlying) and vUXRP (market) under BNB Chain Testnet → Core Pool.venus-protocol/— param edits + deploy artifacts (MockUXRP, vUXRP) were already committed during the preceding deploy step; no further changes.Deployed addresses (three-way verified)
0xE4090cA6392c35D181164484476A6B09979364c9deployments/bsctestnet/MockUXRP.json✓symbol()→UXRP✓0xDfc35DDed555F2B9E45846fb5E8aB81Fc7c02567deployments/bsctestnet/vUXRP.json✓symbol()→vUXRP,admin()→NormalTimelock0xce107…,underlying()→MockUXRP,interestRateModel()→0x1CcDaf…6b80,totalSupply()→0 ✓IRM reused (not redeployed):
JumpRateModel … 0x1CcDaf39085bae4e27c3Ba100561b1AD1B5A6b80— base 0%, multiplier 6.67%/yr, kink 75%, jump 627%/yr (exact match to the requirement, confirmed on-chain as the vUXRP IRM).VIP command sequence (Core Pool, corePoolId 0)
ChainlinkOracle.setDirectPrice(UXRP, $2.50)— standard testnet ChainlinkOracle; timelock already holds the permission (per vip-596 precedent, no grant needed).ResilientOracle.setTokenConfig— Chainlink as the sole (main) source.Unitroller._supportMarket(vUXRP)_setMarketSupplyCaps([vUXRP],[236e18])_setMarketBorrowCaps([vUXRP],[236e18])setIsBorrowAllowed(0, vUXRP, true)— required to enable borrowing (see note below).setAccessControlManager(ACM),setProtocolShareReserve(PSR),setReduceReservesBlockDelta(28800),_setReserveFactor(0.25)setCollateralFactor(vUXRP, 0.6, 0.7)(CF / LT),setLiquidationIncentive(vUXRP, 1.1)All risk params per spec: CF 60%, LT 70%, LI 10%, RF 25%, supply/borrow caps 236, borrowing enabled.
Key technical decisions
_supportMarketleavesisBorrowAllowed=false, soborrowwould revertBorrowNotAllowedInPool. AddedsetIsBorrowAllowed(0, vUXRP, true). The two most recent market-addition precedents (vip-596, vip-633) pause borrow and never show this path, so it isn't visible by copying them.ChainlinkOracle.solthatsetDirectPricestoresprices[asset]andgetPricereturns it directly, bypassing_getChainlinkPrice's stale check. So UXRP's price never goes stale on the time-warped fork — nosetMaxStalePeriodworkaround is needed for UXRP (the requirement's staleness concern is handled structurally by using the direct price).ethers.getSigners()[0]rather thanGENERIC_TEST_USER_ACCOUNT, because that shared testnet account already has 4 markets inassetsIn(vBNB, vXVS, vUSDC, vSXP) whose real feeds go stale on the fork and revert the liquidity check withinvalid resilient oracle price. A fresh signer only prices vUXRP (pinned), and self-funds via the mockfaucet.Simulation —
npx hardhat test simulations/vip-664/bsctestnet.ts --fork bsctestnetFork block 115008600 (just after the MockUXRP/vUXRP deploy txs). Result: 53 passing, 0 failing.
expectEventsasserts MarketListed, NewSupplyCap, NewBorrowCap, BorrowAllowedUpdated, NewAccessControlManager, NewProtocolShareReserve, NewReduceReservesBlockDelta, NewReserveFactor, NewCollateralFactor, NewLiquidationThreshold, NewLiquidationIncentive (×1 each).checkVToken,checkRiskParameters(RF 0.25, CF 0.6, supply/borrow caps 236), oracle price = $2.50, LT = 0.7, LI = 1.1,isBorrowAllowed = true, admin/ACM/PSR/reduceReservesBlockDelta, total supply, burned + receiver vToken balances.checkRiskParametersstorage — it can't be hit behaviorally below the equal supply cap.)Lint / typecheck
npx eslint vips/vip-664/bsctestnet.ts simulations/vip-664/bsctestnet.ts→ clean (exit 0).npx prettier --writeapplied.npx tsc --noEmit→ no vip-664 errors.Assumptions
Opened by the Venus dev bot. Review required; the bot cannot merge.