Skip to content

Create forked scenario 2.#159

Open
RZhang05 wants to merge 17 commits intofeature/forked-simulationsfrom
forked-scen2
Open

Create forked scenario 2.#159
RZhang05 wants to merge 17 commits intofeature/forked-simulationsfrom
forked-scen2

Conversation

@RZhang05
Copy link

@RZhang05 RZhang05 commented Feb 3, 2026

Closes: #155

Depends on #173

Description

Output
5:00PM INF Using fork height chainId=flow-mainnet forkBlockID=24806fa16bae3ee6f3852c41ba413319306e2f5620133dd0a0786d228201a712 forkHeight=143292255 host=access.mainnet.nodes.onflow.org:9000
5:00PM INF LOG: "[TEST] Captured Position ID from event: 5"
5:00PM INF LOG: "[TEST] YieldVault ID: 208"
5:00PM INF LOG: "[TEST] Initial yield vault balance: 999.83077766"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.10000000: 999.83077766"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.10000000 rebalance: 1055.82098515"
5:00PM INF LOG: "[TEST] YieldVault balance after yield price 1.10000000 rebalance: 1061.53846035"
5:00PM INF LOG: "\n+----------------------------------------------------------------+"
5:00PM INF LOG: "|          PRECISION DRIFT DIAGNOSTIC - Yield Price 1.10000000         |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "| Layer          | Value          | Drift         | % Drift      |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| Position       | 1061.53846038 | -0.00000116 | -0.00000000% |"
5:00PM INF LOG: "| YieldVault Balance   | 1061.53846035 | -0.00000119 | -0.00000000% |"
5:00PM INF LOG: "| Expected       | 1061.53846154 | ------------- | ------------ |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| YieldVault vs Position: -0.00000003                                   |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "\n== INTERMEDIATE VALUES TRACE:"
5:00PM INF LOG: "- Position Balance Details:"
5:00PM INF LOG: "  * Flow Amount (trueBalance): 1061.53846038"
5:00PM INF LOG: "- Expected Value Analysis:"
5:00PM INF LOG: "  * Expected UFix64: 1061.53846154"
5:00PM INF LOG: "- Precision Loss Summary:"
5:00PM INF LOG: "  * Position vs Expected: -0.00000116 (-0.00000000%)"
5:00PM INF LOG: "  * YieldVault vs Expected: -0.00000119 (-0.00000000%)"
5:00PM INF LOG: "  * Additional YieldVault Loss: -0.00000003"
5:00PM INF LOG: "\n\u{26a0}\u{fe0f}  WARNING: Significant precision drift detected!"
5:00PM INF LOG: "\n=== PRECISION COMPARISON for Yield Price 1.10000000 ==="
5:00PM INF LOG: "Expected Value:         1061.53846154"
5:00PM INF LOG: "Actual YieldVault Balance:    1061.53846035"
5:00PM INF LOG: "Flow Position Value:    1061.53846038"
5:00PM INF LOG: "Flow Position Amount:   1061.53846038 tokens"
5:00PM INF LOG: ""
5:00PM INF LOG: "YieldVault vs Expected:       -0.00000119 (-0.00000000%)"
5:00PM INF LOG: "Position vs Expected:   -0.00000116 (-0.00000000%)"
5:00PM INF LOG: "YieldVault vs Position:       -0.00000003"
5:00PM INF LOG: "===============================================\n"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.20000000: 1061.53846035"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.20000000 rebalance: 1115.39686571"
5:00PM INF LOG: "[TEST] YieldVault balance after yield price 1.20000000 rebalance: 1120.92522660"
5:00PM INF LOG: "\n+----------------------------------------------------------------+"
5:00PM INF LOG: "|          PRECISION DRIFT DIAGNOSTIC - Yield Price 1.20000000         |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "| Layer          | Value          | Drift         | % Drift      |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| Position       | 1120.92522667 | -0.00000195 | -0.00000000% |"
5:00PM INF LOG: "| YieldVault Balance   | 1120.92522660 | -0.00000202 | -0.00000000% |"
5:00PM INF LOG: "| Expected       | 1120.92522862 | ------------- | ------------ |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| YieldVault vs Position: -0.00000007                                   |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "\n== INTERMEDIATE VALUES TRACE:"
5:00PM INF LOG: "- Position Balance Details:"
5:00PM INF LOG: "  * Flow Amount (trueBalance): 1120.92522667"
5:00PM INF LOG: "- Expected Value Analysis:"
5:00PM INF LOG: "  * Expected UFix64: 1120.92522862"
5:00PM INF LOG: "- Precision Loss Summary:"
5:00PM INF LOG: "  * Position vs Expected: -0.00000195 (-0.00000000%)"
5:00PM INF LOG: "  * YieldVault vs Expected: -0.00000202 (-0.00000000%)"
5:00PM INF LOG: "  * Additional YieldVault Loss: -0.00000007"
5:00PM INF LOG: "\n\u{26a0}\u{fe0f}  WARNING: Significant precision drift detected!"
5:00PM INF LOG: "\n=== PRECISION COMPARISON for Yield Price 1.20000000 ==="
5:00PM INF LOG: "Expected Value:         1120.92522862"
5:00PM INF LOG: "Actual YieldVault Balance:    1120.92522660"
5:00PM INF LOG: "Flow Position Value:    1120.92522667"
5:00PM INF LOG: "Flow Position Amount:   1120.92522667 tokens"
5:00PM INF LOG: ""
5:00PM INF LOG: "YieldVault vs Expected:       -0.00000202 (-0.00000000%)"
5:00PM INF LOG: "Position vs Expected:   -0.00000195 (-0.00000000%)"
5:00PM INF LOG: "YieldVault vs Position:       -0.00000007"
5:00PM INF LOG: "===============================================\n"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.30000000: 1120.92522660"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.30000000 rebalance: 1173.04695001"
5:00PM INF LOG: "[TEST] YieldVault balance after yield price 1.30000000 rebalance: 1178.40856962"
5:00PM INF LOG: "\n+----------------------------------------------------------------+"
5:00PM INF LOG: "|          PRECISION DRIFT DIAGNOSTIC - Yield Price 1.30000000         |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "| Layer          | Value          | Drift         | % Drift      |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| Position       | 1178.40856969 | -0.00000399 | -0.00000000% |"
5:00PM INF LOG: "| YieldVault Balance   | 1178.40856962 | -0.00000406 | -0.00000000% |"
5:00PM INF LOG: "| Expected       | 1178.40857368 | ------------- | ------------ |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| YieldVault vs Position: -0.00000007                                   |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "\n== INTERMEDIATE VALUES TRACE:"
5:00PM INF LOG: "- Position Balance Details:"
5:00PM INF LOG: "  * Flow Amount (trueBalance): 1178.40856969"
5:00PM INF LOG: "- Expected Value Analysis:"
5:00PM INF LOG: "  * Expected UFix64: 1178.40857368"
5:00PM INF LOG: "- Precision Loss Summary:"
5:00PM INF LOG: "  * Position vs Expected: -0.00000399 (-0.00000000%)"
5:00PM INF LOG: "  * YieldVault vs Expected: -0.00000406 (-0.00000000%)"
5:00PM INF LOG: "  * Additional YieldVault Loss: -0.00000007"
5:00PM INF LOG: "\n\u{26a0}\u{fe0f}  WARNING: Significant precision drift detected!"
5:00PM INF LOG: "\n=== PRECISION COMPARISON for Yield Price 1.30000000 ==="
5:00PM INF LOG: "Expected Value:         1178.40857368"
5:00PM INF LOG: "Actual YieldVault Balance:    1178.40856962"
5:00PM INF LOG: "Flow Position Value:    1178.40856969"
5:00PM INF LOG: "Flow Position Amount:   1178.40856969 tokens"
5:00PM INF LOG: ""
5:00PM INF LOG: "YieldVault vs Expected:       -0.00000406 (-0.00000000%)"
5:00PM INF LOG: "Position vs Expected:   -0.00000399 (-0.00000000%)"
5:00PM INF LOG: "YieldVault vs Position:       -0.00000007"
5:00PM INF LOG: "===============================================\n"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.50000000: 1178.40856962"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 1.50000000 rebalance: 1279.67945034"
5:00PM INF LOG: "[TEST] YieldVault balance after yield price 1.50000000 rebalance: 1289.97387752"
5:00PM INF LOG: "\n+----------------------------------------------------------------+"
5:00PM INF LOG: "|          PRECISION DRIFT DIAGNOSTIC - Yield Price 1.50000000         |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "| Layer          | Value          | Drift         | % Drift      |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| Position       | 1289.97387761 | -0.00000482 | -0.00000000% |"
5:00PM INF LOG: "| YieldVault Balance   | 1289.97387752 | -0.00000491 | -0.00000000% |"
5:00PM INF LOG: "| Expected       | 1289.97388243 | ------------- | ------------ |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| YieldVault vs Position: -0.00000009                                   |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "\n== INTERMEDIATE VALUES TRACE:"
5:00PM INF LOG: "- Position Balance Details:"
5:00PM INF LOG: "  * Flow Amount (trueBalance): 1289.97387761"
5:00PM INF LOG: "- Expected Value Analysis:"
5:00PM INF LOG: "  * Expected UFix64: 1289.97388243"
5:00PM INF LOG: "- Precision Loss Summary:"
5:00PM INF LOG: "  * Position vs Expected: -0.00000482 (-0.00000000%)"
5:00PM INF LOG: "  * YieldVault vs Expected: -0.00000491 (-0.00000000%)"
5:00PM INF LOG: "  * Additional YieldVault Loss: -0.00000009"
5:00PM INF LOG: "\n\u{26a0}\u{fe0f}  WARNING: Significant precision drift detected!"
5:00PM INF LOG: "\n=== PRECISION COMPARISON for Yield Price 1.50000000 ==="
5:00PM INF LOG: "Expected Value:         1289.97388243"
5:00PM INF LOG: "Actual YieldVault Balance:    1289.97387752"
5:00PM INF LOG: "Flow Position Value:    1289.97387761"
5:00PM INF LOG: "Flow Position Amount:   1289.97387761 tokens"
5:00PM INF LOG: ""
5:00PM INF LOG: "YieldVault vs Expected:       -0.00000491 (-0.00000000%)"
5:00PM INF LOG: "Position vs Expected:   -0.00000482 (-0.00000000%)"
5:00PM INF LOG: "YieldVault vs Position:       -0.00000009"
5:00PM INF LOG: "===============================================\n"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 2.00000000: 1289.97387752"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 2.00000000 rebalance: 1530.33601275"
5:00PM INF LOG: "[TEST] YieldVault balance after yield price 2.00000000 rebalance: 1554.58390254"
5:00PM INF LOG: "\n+----------------------------------------------------------------+"
5:00PM INF LOG: "|          PRECISION DRIFT DIAGNOSTIC - Yield Price 2.00000000         |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "| Layer          | Value          | Drift         | % Drift      |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| Position       | 1554.58390268 | -0.00000691 | -0.00000000% |"
5:00PM INF LOG: "| YieldVault Balance   | 1554.58390254 | -0.00000705 | -0.00000000% |"
5:00PM INF LOG: "| Expected       | 1554.58390959 | ------------- | ------------ |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| YieldVault vs Position: -0.00000014                                   |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "\n== INTERMEDIATE VALUES TRACE:"
5:00PM INF LOG: "- Position Balance Details:"
5:00PM INF LOG: "  * Flow Amount (trueBalance): 1554.58390268"
5:00PM INF LOG: "- Expected Value Analysis:"
5:00PM INF LOG: "  * Expected UFix64: 1554.58390959"
5:00PM INF LOG: "- Precision Loss Summary:"
5:00PM INF LOG: "  * Position vs Expected: -0.00000691 (-0.00000000%)"
5:00PM INF LOG: "  * YieldVault vs Expected: -0.00000705 (-0.00000000%)"
5:00PM INF LOG: "  * Additional YieldVault Loss: -0.00000014"
5:00PM INF LOG: "\n\u{26a0}\u{fe0f}  WARNING: Significant precision drift detected!"
5:00PM INF LOG: "\n=== PRECISION COMPARISON for Yield Price 2.00000000 ==="
5:00PM INF LOG: "Expected Value:         1554.58390959"
5:00PM INF LOG: "Actual YieldVault Balance:    1554.58390254"
5:00PM INF LOG: "Flow Position Value:    1554.58390268"
5:00PM INF LOG: "Flow Position Amount:   1554.58390268 tokens"
5:00PM INF LOG: ""
5:00PM INF LOG: "YieldVault vs Expected:       -0.00000705 (-0.00000000%)"
5:00PM INF LOG: "Position vs Expected:   -0.00000691 (-0.00000000%)"
5:00PM INF LOG: "YieldVault vs Position:       -0.00000014"
5:00PM INF LOG: "===============================================\n"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 3.00000000: 1554.58390254"
5:00PM INF LOG: "[TEST] YieldVault balance before yield price 3.00000000 rebalance: 1989.17165050"
5:00PM INF LOG: "[TEST] YieldVault balance after yield price 3.00000000 rebalance: 2032.91741003"
5:00PM INF LOG: "\n+----------------------------------------------------------------+"
5:00PM INF LOG: "|          PRECISION DRIFT DIAGNOSTIC - Yield Price 3.00000000         |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "| Layer          | Value          | Drift         | % Drift      |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| Position       | 2032.91741019 | -0.00001004 | -0.00000000% |"
5:00PM INF LOG: "| YieldVault Balance   | 2032.91741003 | -0.00001020 | -0.00000000% |"
5:00PM INF LOG: "| Expected       | 2032.91742023 | ------------- | ------------ |"
5:00PM INF LOG: "|----------------|----------------|---------------|--------------|"
5:00PM INF LOG: "| YieldVault vs Position: -0.00000016                                   |"
5:00PM INF LOG: "+----------------------------------------------------------------+"
5:00PM INF LOG: "\n== INTERMEDIATE VALUES TRACE:"
5:00PM INF LOG: "- Position Balance Details:"
5:00PM INF LOG: "  * Flow Amount (trueBalance): 2032.91741019"
5:00PM INF LOG: "- Expected Value Analysis:"
5:00PM INF LOG: "  * Expected UFix64: 2032.91742023"
5:00PM INF LOG: "- Precision Loss Summary:"
5:00PM INF LOG: "  * Position vs Expected: -0.00001004 (-0.00000000%)"
5:00PM INF LOG: "  * YieldVault vs Expected: -0.00001020 (-0.00000000%)"
5:00PM INF LOG: "  * Additional YieldVault Loss: -0.00000016"
5:00PM INF LOG: "\n\u{26a0}\u{fe0f}  WARNING: Significant precision drift detected!"
5:00PM INF LOG: "\n=== PRECISION COMPARISON for Yield Price 3.00000000 ==="
5:00PM INF LOG: "Expected Value:         2032.91742023"
5:00PM INF LOG: "Actual YieldVault Balance:    2032.91741003"
5:00PM INF LOG: "Flow Position Value:    2032.91741019"
5:00PM INF LOG: "Flow Position Amount:   2032.91741019 tokens"
5:00PM INF LOG: ""
5:00PM INF LOG: "YieldVault vs Expected:       -0.00001020 (-0.00000000%)"
5:00PM INF LOG: "Position vs Expected:   -0.00001004 (-0.00000000%)"
5:00PM INF LOG: "YieldVault vs Position:       -0.00000016"
5:00PM INF LOG: "===============================================\n"

Test results: "cadence/tests/forked_rebalance_scenario2_test.cdc"
- PASS: test_RebalanceYieldVaultScenario2

For contributor use:

  • Targeted PR against master branch
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Code follows the standards mentioned here.
  • Updated relevant documentation
  • Re-reviewed Files changed in the Github PR explorer
  • Added appropriate labels

@RZhang05 RZhang05 self-assigned this Feb 3, 2026
@RZhang05 RZhang05 linked an issue Feb 3, 2026 that may be closed by this pull request
@RZhang05 RZhang05 changed the base branch from raymond/forked-scen1 to main February 17, 2026 17:40
@RZhang05 RZhang05 changed the base branch from main to raymond/forked-scen1 February 24, 2026 16:40
Base automatically changed from raymond/forked-scen1 to feature/forked-simulations February 26, 2026 22:51
@RZhang05 RZhang05 changed the title [WIP] Create forked scenario 2. Create forked scenario 2. Feb 27, 2026
@RZhang05 RZhang05 marked this pull request as ready for review February 27, 2026 16:23
@RZhang05 RZhang05 requested a review from a team as a code owner February 27, 2026 16:23
@RZhang05 RZhang05 requested a review from jribbink February 27, 2026 16:23
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.

Recreate Simulation Scenario 2 With Fork Testing Setup

2 participants