diff --git a/public/pi/15/index.html b/public/pi/15/index.html index d6fdf5d04..398e5b6b8 100644 --- a/public/pi/15/index.html +++ b/public/pi/15/index.html @@ -794,4 +794,4 @@ background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%220.75%22%20y%3D%220.75%22%20width%3D%2214.5%22%20height%3D%2214.5%22%20fill%3D%22white%22%20stroke%3D%22%2336352F%22%20stroke-width%3D%221.5%22%2F%3E%0A%3C%2Fsvg%3E"); } -

PI-15: Beanstalk Repayments and Bug Fixes

Executed on March 6, 2026 at 16:58 UTC.

Summary

  1. Beanstalk Repayments: Add separate repayment routes for Beanstalk's Field, Silo and Barn obligations, with transferable positions, contract-account claims and accounting hooks for Pinto shipments and Internal Balance transfers.
  1. Convert Accounting and Penalties: Fix capacity double-counting and normalize the Grown Stalk penalty to simulated liquidity impact.
  1. Referral Eligibility: Preserve a former delegate's independently earned eligibility when referral delegation changes, and reject delegation to the zero address.
  1. Plot Management: Add bounded queries of Plot indexes and combine adjacent Plots to simplify position management.

Links

Background

Pinto committed at launch to start repaying Beanstalk’s obligations after supply exceeds 1 billion Pinto. The original writeup specifies Arbitrum block 276160746 for the holder snapshot, with Silo allocations based on fully recapitalized Unripe value, equivalent Field positions and Barn Fertilizer balances.

Problems

1. Beanstalk Repayments

The contracts and accounting needed to repay Beanstalk’s obligations had not yet been implemented.

2. Convert Accounting and Penalties

The per-block Convert capacity used to calculate Grown Stalk penalties tracks movement toward peg across all Wells and within each Well. Its accounting counted earlier Converts again with each new Convert in the same block, overstating capacity usage.

Grown Stalk penalties had two calculation problems. Overall movement toward or away from peg was measured from the spot reserve imbalance immediately before the Convert, making the result sensitive to preceding trades. The resulting penalty amount was then treated directly as Pinto Denominated Value (PDV) subject to Grown Stalk removal, rather than scaled to the Convert’s size and simulated effect on pool liquidity.

3. Referral Eligibility

Removing delegation from an account cleared the former delegate's eligibility, even when that account had independently Sown enough Pinto to qualify. The function also permitted delegation to the zero address.

4. Plot Management

The Field interface lacked bounded queries for positions in an account's Plot-index list and a way to combine adjacent Plots.

Solutions

1. Beanstalk Repayments

Add separate repayment positions for Beanstalk’s Field, Silo and Barn obligations, with transfers and claims on Base.

Under the normal allocation, 48.5% of newly minted Pinto goes to the regular Silo and 48.5% to the regular Field. The remaining 3% shifts from the budget to Beanstalk repayments as supply crosses 1 billion Pinto: initially 1% each to the repayment Field, Silo and Barn. Once the Barn is repaid, the repayment Field and Silo each receive 1.5%; once the Silo is repaid, the repayment Field receives 3%.

2. Convert Accounting and Penalties

Count each Convert’s use of the per-block, overall and per-Well capacity once, preserving the correct remaining capacity for later Converts in the same block. This capacity governs Grown Stalk penalties and is separate from Convert Up bonus capacity.

Make the overall penalty less sensitive to trades immediately before a Convert by measuring its effect against a reserve baseline that limits sudden changes. Individual Well checks still use spot reserves.

Scale Grown Stalk penalties to the proportion of a Convert that moves away from peg or exceeds remaining capacity. The penalty reflects the Convert’s size and expected liquidity impact, rather than treating the raw reserve imbalance as an amount of deposit value to penalize. At most 100% of the output PDV is subject to this penalty.

Apply these changes to ordinary and batch Pinto ↔ Well LP Converts and Pipeline Converts. Same-token Converts receive no penalty from this calculation. Existing Grown Stalk minimums, directional bonuses or penalties, and slippage protections still apply; invalid reserve or oracle data can prevent a Convert.

3. Referral Eligibility

When changing a delegate, clear the former delegate's eligibility only if their own recorded Sowing is below the eligibility threshold. Reject a zero-address delegate.

4. Plot Management

Add getters for Plot-index list length, a Plot's stored reverse index, selected array positions and half-open index ranges. Position queries preserve the requested order. Range queries require a nonempty range within the list bounds.

Add combinePlots for at least two positive caller-owned Plots supplied in ascending, exactly adjacent Pod Line order. Aggregate their Pods into the first Plot, remove later Plots from account indexing, and cancel listings for those later Plots. The first Plot's listing remains. Index removal uses swap-and-pop, so account-list order is not preserved.

Rationale

1. Beanstalk Repayments

Give Beanstalk holders a way to receive the repayments Pinto committed to at launch. Transferable positions let holders pass future repayment rights to someone else, while keeping track of Pinto already earned. Separate Field, Silo and Barn positions preserve the different claims holders had in Beanstalk. Repayment limits prevent paying more than is owed or using more newly minted Pinto than allocated.

2. Convert Accounting and Penalties

Later Converts should not face higher Grown Stalk penalties because earlier Converts were counted more than once. Correcting that accounting preserves the capacity actually available in each block.

Penalties should reflect how much a Convert moves Pinto away from peg or exceeds available capacity. Making the calculation less sensitive to preceding trades and scaling it to the Convert’s size makes the penalty better reflect that Convert’s effect.

3. Referral Eligibility

Delegation changes should preserve eligibility earned through an account’s own Sowing. Rejecting the zero address prevents assigning it referral eligibility.

4. Plot Management

Combining Plots simplifies management without moving their Pod Line position or creating Pods.

Contract Changes

At Base block 43,013,477, the cut added 14 selectors, replaced 197 and removed three. The source merged March 10, after execution. This inventory excludes standalone Blueprint deployments in that merge.

Initialization

Executed InitBeanstalkShipments through init(ShipmentRoute[],address). It replaced shipment routes, called addField, set Field 1's pods to 919768387056514 raw units (919,768,387.056514 Pods at six decimals), and registered the supplied SiloPayback's protocolUpdate(address,address,uint256) hook with encoding type 0x00. It assumes the newly added Field is Field 1. It does not explicitly reset harvestable or harvested, and account Plot population is separate.

Removed the three temporary population selectors. The populator-only initializeRepaymentPlots wrote quantities and index mappings in batches without guarding against repeated entries. Historical receipts confirm that 62 successful batches populated all 7,598 Plots exactly once, matching the population dataset. Two repeated attempts reverted.

Facet Changes

The previous implementations below are verified against historical routing at Base block 43,013,476, immediately before PI-15. All 197 replaced selectors match the listed addresses, all 14 added selectors were absent, and the three removed selectors pointed to TempRepaymentFieldFacet. PI-15 was the only Diamond upgrade in its execution block.

FacetActionPrevious ImplementationNew Implementation
SeasonFacetReplace0x4aeee50b11c3682605dceca1feacd96349383cd20x0dbb045a6cb0a2d8a7320c40f57bbaa1325eb509
SeasonGettersFacetReplace0x87e626e6187bc0df123cf6441ccc9f31a46f178e0x66fb2def6075067cd83ef17cd17e78389c2130fe
TokenHookFacetAddNot applicable: new selectors0x59479226df7b0f9aa0baf8c20a37c59d3dfdf590
ShipmentPlannerFacetAddNot applicable: new selectors0xf0e6e13c39d6dffcac002b722ce3b27460678b88
FieldFacetAdd / Replace0xae94197e16b31443fe1c333a32eda30eb3c1a9420xa0e75d184e4cbd9ee4bcff1e4241644a4f40520e
TokenFacetReplace0xd29e38e4a803feac3503fd7402181bba79d3d3f00x72c3b15c61c75231722f299b743d04b6e6cb1e5d
TractorFacetReplace0xc8706ff2a0da6b3367aa506dcbb608ccf96148de0x31e42c360092ac719a02b2b67b6ed8586c856824
MarketplaceFacetReplace0x85436279a52537ef03864e268d73d3ba37e169ec0xeb0433332dad2cf2bececa144602ccc4d15e474e
MarketplaceBatchFacetReplace0x40e42f3d568faf47c539a7d2a61e24629819bad40x5da1e415f6aad25bd27859de1b6001d0596b43c3
ClaimFacetReplace0xfc4499f812014bebaf9686ce0312a77cca65137a0xab86a40c4aeb2af5e739bfdb66f21fd4ca9e7098
SiloFacetReplace0x8646649c0f80db8665358f4548ae0d1ecc3910a50x051b60dad9c5a87355ffc5fb795c00e95c849a2a
GaugeFacetReplace0xf9f1d9c6ef1ca5ec0897c266d7b4e016e955d9160xe7ec22cb41db7935aea4b4d7a418c1a52d37239f
ConvertFacetReplace0xdc37f26363b305affc93c564ee879a265bcbff4d0x978ec1c303999e0a4eb4928dc3a4b39f0e9b7fa0
ConvertBatchFacetReplace0x923a7096f7338660e60b4dc0ae21d2413e3997390xbc27599d5345c082dd0bd258a8d92c416e2dd4e1
ConvertGettersFacetAdd / Replace0x334a110ad41fd417d4c8c3f82d9c85a3850192be0xfd29acd8b38c85ca6b88ed776b06ad059599dca4
PipelineConvertFacetReplace0xa66460626d1f8845085b1cdd5e527db1db998b1b0xdedf1678bee92b4759b8efd20e918df27a7ff21d
TempRepaymentFieldFacetRemove0x2b467c15188058ed1c91091dd53805a816c278f7Not applicable: removed selectors

ConvertGettersFacet adds the new penalty overload and replaces 15 other selectors. This cut leaves the prior penalty selector untouched.

Other Contract / Parameter Changes

Runtime link offsets verify these libraries, including indirect LibTokenSilo. PipelineConvertFacet uses the new libraries despite stale compiler settings. Previous dependencies belong to the previous facets verified against pre-PI-15 routing.

LibraryPrevious ImplementationNew ImplementationUsed By
LibEvaluate0x1105414b01a6d2214d1c33a1f756dea2e5e872590x6353f809bdb71c2c646f6336fa5b63deba466967SeasonFacet
LibShipping0xf528edef6598d1907eef6e7ad1a8b87e54c736a90xf6b8ff56917c18953e6a95c3bbcae51d64be6e83SeasonFacet
LibIncentive0x735aab105c222bee6aaf520adc4cf3128fdcc6db0xc00bdb284e2d0ddf528633554a7d82d5089918cbSeasonFacet
LibFlood0xef75cae236476bfedc5207d57e5ea7ea315a8c120xa6217c08de815e91ef8d3f1738d5a911beb7e7a2SeasonFacet
LibWeather0xf8569d0f4aa794ea4c9ca5efadda38433ad52bbb0x98f56c080a2c6214241f456d92e9fb3491be2bc7SeasonFacet
LibGerminate0x752f502897667c6ba438d35b39439c84210dad060xd91dc083a764f8d1ad391cbe055e110ef0a87247SeasonFacet
LibSeedGauge0xbcc581f0d70a033e21b31ea695fd3c29785031460x19c469e8516bdc38cb5f9957154a11f987796b03SeasonFacet
LibWellMinting0xcfceea3eeaeccb8dcda9cbc37d72523c10855c62 (SeasonFacet) / 0x7cbd0b120a1ee1cdac1ed245ee23a80b37c7a6f9 (SeasonGettersFacet)0xf4b01d96cdb6ef6fa80635e28b64ad6b1c8ede18SeasonFacet, SeasonGettersFacet
LibSilo0x648a2ab1358bf9df357772e2fd5d4ceec824ecfa0x273815fac17fb44679df4cb04b41a14d5e18db47ClaimFacet, ConvertBatchFacet, ConvertFacet, PipelineConvertFacet, SiloFacet
LibTokenSilo0xff684446076ebc98cb2998a219dac957eb66b0ae0x3622bc9e648d9569212a91cb3de0453923623f4dClaimFacet, LibConvert, SiloFacet
LibConvert0x7665b799e4e05c2ddc4306826322e9d0729965f70xa40fe465001f914b9b2508e6be695951e564bb6eConvertBatchFacet, ConvertFacet, PipelineConvertFacet
LibPipelineConvert0x249be8f283471f2d4f08a4dae1108c632c650d6b0xbc9e24ced57ffa5d46632c2ff0e50f14f29350bfConvertBatchFacet, ConvertFacet, PipelineConvertFacet

LibReceiving is internal to the shipping path, not a separate external link.

Repayment deployment sets. Constructor records verify initial implementations and administrators, not proxy storage or application ownership at execution.

Set and contractDeployed addressInitial implementationInitial proxy adminDeployment block
PR Silo0xBa0534B16017E861bA15f1587D8A060e15F7f3360xCebbDb437330a2f9049A4882918762Bc1A5fB5820xf71f4d69d8ad7eb6dcfb1c8ac36fdda3d057500d42043042
PR Barn0x724c87b9A6Ea6BA7A7CF3bfc0309DE778fB280270xd5a8E2FF523Cb3dB614A669c4044E908Ebaad0410xf71f4d69d8ad7eb6dcfb1c8ac36fdda3d057500d42043046
PR distributor0xB0e3DC9066C7aFC90065008e8d7a3c6Cb1F66B37Not applicable: direct deploymentNot applicable42043050
Executed-route Silo0x525C94754C51946a7a3B72580Ce0DF36922E1E640xDbb10C0cE795FFd3A4003CF0EcC849b25a788EB10xE5A707d49968937C860762fB256CE9dC7B1370F042062562
Executed-route Barn0x68bDbb0402a3Ca89C7C4af8e41C021635102d1580x5bb2b891496F9f4db1467755eDc240329EA08E2C0xE5A707d49968937C860762fB256CE9dC7B1370F042062570
Executed-route set distributor0xbA941Af3292c49b585f4EC5C8164c1dfc893EEdC0xED3Ead9D8b6E57f666E60ccf833f3ed1Be2Dd4c00xE5A707d49968937C860762fB256CE9dC7B1370F042062579

The reference lists L1ContractMessenger at 0xD2abd9a7E7F10e3bF4376fb03A07fca729A55b6f. Its deployed bytecode matches the source, with 50 fixed whitelisted callers. Its immutable Base destination, 0x1152691C30aAd82eB9baE7e32d662B19391e34Db, had no contract code at PI-15 execution and differs from the distributor above. This messenger therefore could not register a receiver in the PI-15 distributor as configured.

Function Changes

Event Changes

\ No newline at end of file +

PI-15: Beanstalk Repayments and Bug Fixes

Executed on March 6, 2026 at 16:58 UTC.

Summary

  1. Beanstalk Repayments: Add separate repayment routes for Beanstalk's Field, Silo and Barn obligations, with transferable positions, contract-account claims and accounting hooks for Pinto shipments and Internal Balance transfers.
  1. Convert Accounting and Penalties: Fix capacity double-counting and normalize the Grown Stalk penalty to simulated liquidity impact.
  1. Referral Eligibility: Preserve a former delegate's independently earned eligibility when referral delegation changes, and reject delegation to the zero address.
  1. Plot Management: Add bounded queries of Plot indexes and combine adjacent Plots to simplify position management.

Links

Background

Pinto committed at launch to start repaying Beanstalk’s obligations after supply exceeds 1 billion Pinto. The original writeup specifies Arbitrum block 276160746 for the holder snapshot, with Silo allocations based on fully recapitalized Unripe value, equivalent Field positions and Barn Fertilizer balances.

Problems

1. Beanstalk Repayments

The contracts and accounting needed to repay Beanstalk’s obligations had not yet been implemented.

2. Convert Accounting and Penalties

The per-block Convert capacity used to calculate Grown Stalk penalties tracks movement toward peg across all Wells and within each Well. Its accounting counted earlier Converts again with each new Convert in the same block, overstating capacity usage.

Grown Stalk penalties had two calculation problems. Overall movement toward or away from peg was measured from the spot reserve imbalance immediately before the Convert, making the result sensitive to preceding trades. The resulting penalty amount was then treated directly as Pinto Denominated Value (PDV) subject to Grown Stalk removal, rather than scaled to the Convert’s size and simulated effect on pool liquidity.

3. Referral Eligibility

Removing delegation from an account cleared the former delegate's eligibility, even when that account had independently Sown enough Pinto to qualify. The function also permitted delegation to the zero address.

4. Plot Management

The Field interface lacked bounded queries for positions in an account's Plot-index list and a way to combine adjacent Plots.

Solutions

1. Beanstalk Repayments

Add separate repayment positions for Beanstalk’s Field, Silo and Barn obligations, with transfers and claims on Base.

Under the normal allocation, 48.5% of newly minted Pinto goes to the regular Silo and 48.5% to the regular Field. The remaining 3% shifts from the budget to Beanstalk repayments as supply crosses 1 billion Pinto: initially 1% each to the repayment Field, Silo and Barn. Once the Barn is repaid, the repayment Field and Silo each receive 1.5%; once the Silo is repaid, the repayment Field receives 3%.

2. Convert Accounting and Penalties

Count each Convert’s use of the per-block, overall and per-Well capacity once, preserving the correct remaining capacity for later Converts in the same block. This capacity governs Grown Stalk penalties and is separate from Convert Up bonus capacity.

Make the overall penalty less sensitive to trades immediately before a Convert by measuring its effect against a reserve baseline that limits sudden changes. Individual Well checks still use spot reserves.

Scale Grown Stalk penalties to the proportion of a Convert that moves away from peg or exceeds remaining capacity. The penalty reflects the Convert’s size and expected liquidity impact, rather than treating the raw reserve imbalance as an amount of deposit value to penalize. At most 100% of the output PDV is subject to this penalty.

Apply these changes to ordinary and batch Pinto ↔ Well LP Converts and Pipeline Converts. Same-token Converts receive no penalty from this calculation. Existing Grown Stalk minimums, directional bonuses or penalties, and slippage protections still apply; invalid reserve or oracle data can prevent a Convert.

3. Referral Eligibility

When changing a delegate, clear the former delegate's eligibility only if their own recorded Sowing is below the eligibility threshold. Reject a zero-address delegate.

4. Plot Management

Add getters for Plot-index list length, a Plot's stored reverse index, selected array positions and half-open index ranges. Position queries preserve the requested order. Range queries require a nonempty range within the list bounds.

Add combinePlots for at least two positive caller-owned Plots supplied in ascending, exactly adjacent Pod Line order. Aggregate their Pods into the first Plot, remove later Plots from account indexing, and cancel listings for those later Plots. The first Plot's listing remains. Index removal uses swap-and-pop, so account-list order is not preserved.

Rationale

1. Beanstalk Repayments

Give Beanstalk holders a way to receive the repayments Pinto committed to at launch. Transferable positions let holders pass future repayment rights to someone else, while keeping track of Pinto already earned. Separate Field, Silo and Barn positions preserve the different claims holders had in Beanstalk. Repayment limits prevent paying more than is owed or using more newly minted Pinto than allocated.

2. Convert Accounting and Penalties

Later Converts should not face higher Grown Stalk penalties because earlier Converts were counted more than once. Correcting that accounting preserves the capacity actually available in each block.

Penalties should reflect how much a Convert moves Pinto away from peg or exceeds available capacity. Making the calculation less sensitive to preceding trades and scaling it to the Convert’s size makes the penalty better reflect that Convert’s effect.

3. Referral Eligibility

Delegation changes should preserve eligibility earned through an account’s own Sowing. Rejecting the zero address prevents assigning it referral eligibility.

4. Plot Management

Combining Plots simplifies management without moving their Pod Line position or creating Pods.

Contract Changes

At Base block 43,013,477, the cut added 14 selectors, replaced 197 and removed three. The source merged March 10, after execution. This inventory excludes standalone Blueprint deployments in that merge.

Initialization

Executed InitBeanstalkShipments through init(ShipmentRoute[],address). It replaced shipment routes, called addField, set Field 1's pods to 919768387056514 raw units (919,768,387.056514 Pods at six decimals), and registered the supplied SiloPayback's protocolUpdate(address,address,uint256) hook with encoding type 0x00. It assumes the newly added Field is Field 1. It does not explicitly reset harvestable or harvested, and account Plot population is separate.

Removed the three temporary population selectors. The populator-only initializeRepaymentPlots wrote quantities and index mappings in batches without guarding against repeated entries. Historical receipts confirm that 62 successful batches populated all 7,598 Plots exactly once, matching the population dataset. Two repeated attempts reverted.

Facet Changes

The previous implementations below are verified against historical routing at Base block 43,013,476, immediately before PI-15. All 197 replaced selectors match the listed addresses, all 14 added selectors were absent, and the three removed selectors pointed to TempRepaymentFieldFacet. PI-15 was the only Diamond upgrade in its execution block.

FacetActionPrevious ImplementationNew Implementation
SeasonFacetReplace0x4aeee50b11c3682605dceca1feacd96349383cd20x0dbb045a6cb0a2d8a7320c40f57bbaa1325eb509
SeasonGettersFacetReplace0x87e626e6187bc0df123cf6441ccc9f31a46f178e0x66fb2def6075067cd83ef17cd17e78389c2130fe
TokenHookFacetAddNot applicable: new selectors0x59479226df7b0f9aa0baf8c20a37c59d3dfdf590
ShipmentPlannerFacetAddNot applicable: new selectors0xf0e6e13c39d6dffcac002b722ce3b27460678b88
FieldFacetAdd / Replace0xae94197e16b31443fe1c333a32eda30eb3c1a9420xa0e75d184e4cbd9ee4bcff1e4241644a4f40520e
TokenFacetReplace0xd29e38e4a803feac3503fd7402181bba79d3d3f00x72c3b15c61c75231722f299b743d04b6e6cb1e5d
TractorFacetReplace0xc8706ff2a0da6b3367aa506dcbb608ccf96148de0x31e42c360092ac719a02b2b67b6ed8586c856824
MarketplaceFacetReplace0x85436279a52537ef03864e268d73d3ba37e169ec0xeb0433332dad2cf2bececa144602ccc4d15e474e
MarketplaceBatchFacetReplace0x40e42f3d568faf47c539a7d2a61e24629819bad40x5da1e415f6aad25bd27859de1b6001d0596b43c3
ClaimFacetReplace0xfc4499f812014bebaf9686ce0312a77cca65137a0xab86a40c4aeb2af5e739bfdb66f21fd4ca9e7098
SiloFacetReplace0x8646649c0f80db8665358f4548ae0d1ecc3910a50x051b60dad9c5a87355ffc5fb795c00e95c849a2a
GaugeFacetReplace0xf9f1d9c6ef1ca5ec0897c266d7b4e016e955d9160xe7ec22cb41db7935aea4b4d7a418c1a52d37239f
ConvertFacetReplace0xdc37f26363b305affc93c564ee879a265bcbff4d0x978ec1c303999e0a4eb4928dc3a4b39f0e9b7fa0
ConvertBatchFacetReplace0x923a7096f7338660e60b4dc0ae21d2413e3997390xbc27599d5345c082dd0bd258a8d92c416e2dd4e1
ConvertGettersFacetAdd / Replace0x334a110ad41fd417d4c8c3f82d9c85a3850192be0xfd29acd8b38c85ca6b88ed776b06ad059599dca4
PipelineConvertFacetReplace0xa66460626d1f8845085b1cdd5e527db1db998b1b0xdedf1678bee92b4759b8efd20e918df27a7ff21d
TempRepaymentFieldFacetRemove0x2b467c15188058ed1c91091dd53805a816c278f7Not applicable: removed selectors

ConvertGettersFacet adds the new penalty overload and replaces 15 other selectors. This cut leaves the prior penalty selector untouched.

Other Contract / Parameter Changes

Runtime link offsets verify these libraries, including indirect LibTokenSilo. PipelineConvertFacet uses the new libraries despite stale compiler settings. Previous dependencies belong to the previous facets verified against pre-PI-15 routing.

LibraryPrevious ImplementationNew ImplementationUsed By
LibEvaluate0x1105414b01a6d2214d1c33a1f756dea2e5e872590x6353f809bdb71c2c646f6336fa5b63deba466967SeasonFacet
LibShipping0xf528edef6598d1907eef6e7ad1a8b87e54c736a90xf6b8ff56917c18953e6a95c3bbcae51d64be6e83SeasonFacet
LibIncentive0x735aab105c222bee6aaf520adc4cf3128fdcc6db0xc00bdb284e2d0ddf528633554a7d82d5089918cbSeasonFacet
LibFlood0xef75cae236476bfedc5207d57e5ea7ea315a8c120xa6217c08de815e91ef8d3f1738d5a911beb7e7a2SeasonFacet
LibWeather0xf8569d0f4aa794ea4c9ca5efadda38433ad52bbb0x98f56c080a2c6214241f456d92e9fb3491be2bc7SeasonFacet
LibGerminate0x752f502897667c6ba438d35b39439c84210dad060xd91dc083a764f8d1ad391cbe055e110ef0a87247SeasonFacet
LibSeedGauge0xbcc581f0d70a033e21b31ea695fd3c29785031460x19c469e8516bdc38cb5f9957154a11f987796b03SeasonFacet
LibWellMinting0xcfceea3eeaeccb8dcda9cbc37d72523c10855c62 (SeasonFacet) / 0x7cbd0b120a1ee1cdac1ed245ee23a80b37c7a6f9 (SeasonGettersFacet)0xf4b01d96cdb6ef6fa80635e28b64ad6b1c8ede18SeasonFacet, SeasonGettersFacet
LibSilo0x648a2ab1358bf9df357772e2fd5d4ceec824ecfa0x273815fac17fb44679df4cb04b41a14d5e18db47ClaimFacet, ConvertBatchFacet, ConvertFacet, PipelineConvertFacet, SiloFacet
LibTokenSilo0xff684446076ebc98cb2998a219dac957eb66b0ae0x3622bc9e648d9569212a91cb3de0453923623f4dClaimFacet, LibConvert, SiloFacet
LibConvert0x7665b799e4e05c2ddc4306826322e9d0729965f70xa40fe465001f914b9b2508e6be695951e564bb6eConvertBatchFacet, ConvertFacet, PipelineConvertFacet
LibPipelineConvert0x249be8f283471f2d4f08a4dae1108c632c650d6b0xbc9e24ced57ffa5d46632c2ff0e50f14f29350bfConvertBatchFacet, ConvertFacet, PipelineConvertFacet

LibReceiving is internal to the shipping path, not a separate external link.

Repayment deployment sets. Constructor records verify initial implementations and administrators, not proxy storage or application ownership at execution.

Set and contractDeployed addressInitial implementationInitial proxy adminDeployment block
PR Silo0xBa0534B16017E861bA15f1587D8A060e15F7f3360xCebbDb437330a2f9049A4882918762Bc1A5fB5820xf71f4d69d8ad7eb6dcfb1c8ac36fdda3d057500d42043042
PR Barn0x724c87b9A6Ea6BA7A7CF3bfc0309DE778fB280270xd5a8E2FF523Cb3dB614A669c4044E908Ebaad0410xf71f4d69d8ad7eb6dcfb1c8ac36fdda3d057500d42043046
PR distributor0xB0e3DC9066C7aFC90065008e8d7a3c6Cb1F66B37Not applicable: direct deploymentNot applicable42043050
Executed-route Silo0x525C94754C51946a7a3B72580Ce0DF36922E1E640xDbb10C0cE795FFd3A4003CF0EcC849b25a788EB10xE5A707d49968937C860762fB256CE9dC7B1370F042062562
Executed-route Barn0x68bDbb0402a3Ca89C7C4af8e41C021635102d1580x5bb2b891496F9f4db1467755eDc240329EA08E2C0xE5A707d49968937C860762fB256CE9dC7B1370F042062570
Executed-route set distributor0xbA941Af3292c49b585f4EC5C8164c1dfc893EEdC0xED3Ead9D8b6E57f666E60ccf833f3ed1Be2Dd4c00xE5A707d49968937C860762fB256CE9dC7B1370F042062579

The reference lists L1ContractMessenger at 0xD2abd9a7E7F10e3bF4376fb03A07fca729A55b6f. Its deployed bytecode matches the source, with 50 fixed whitelisted callers. Its immutable Base destination, 0x1152691C30aAd82eB9baE7e32d662B19391e34Db, had no contract code at PI-15 execution and differs from the distributor above. This messenger therefore could not register a receiver in the PI-15 distributor as configured.

Function Changes

Event Changes

\ No newline at end of file