Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
306 commits
Select commit Hold shift + click to select a range
fac85f1
split state and shipment tests, add tests for no paybacks remaining
default-juice Aug 22, 2025
963f709
remove partial claims from silo payback to conform with new hook arch…
default-juice Aug 22, 2025
91aa95c
at distribution test at supply edge, add correct address for base l1 …
default-juice Aug 22, 2025
acc60bc
add claim test for all paybacks, fix deployment parameter for distrib…
default-juice Aug 22, 2025
b2fdc03
fix fertilizer double amount bug, remove unused imports, all tests pa…
default-juice Aug 23, 2025
e5a4ce4
modify account abstraction delegated accounts to claim via the distri…
default-juice Aug 24, 2025
cf6d8cf
generalized internal transfer hook system
default-juice Aug 25, 2025
67f5c79
separate tasks according to timeline
default-juice Aug 25, 2025
c5e70b5
dynamically filter out delegated contract accounts, clean up parsing
default-juice Aug 25, 2025
007cfd3
add hook support and tests for internal to external and vice versa
default-juice Aug 26, 2025
4e97fa2
Merge remote-tracking branch 'origin/beanstalk-shipments' into genera…
default-juice Aug 27, 2025
84d72df
Merge 4e97fa21623c0dcac29b9a71367c249a7f0ef65b into c5e70b5efa4b064fc…
default-juice Aug 27, 2025
e7a55ed
auto-format: prettier formatting for Solidity files
actions-user Aug 27, 2025
6eca340
move hook facet init to final diamond cut, update event signatures
default-juice Aug 27, 2025
9a30860
Merge branch 'generalized-internal-hook-system' of github.com:pinto-o…
default-juice Aug 27, 2025
161b636
fix yield claims on transfer for fertilizer
default-juice Aug 27, 2025
bc709a4
refactor contract claim initialization to dynamically take in smart c…
default-juice Aug 27, 2025
e19a568
add comments on deployment steps
default-juice Aug 27, 2025
a4204b5
update diamond abi
default-juice Aug 27, 2025
8ff3fc6
omit dynamic contracts from asset distribution, transfer ownership at…
default-juice Aug 28, 2025
2de558e
add more comments to planner
default-juice Aug 28, 2025
e9ab4a6
add json metadata to fertilizer
nickkatsios Aug 29, 2025
c6ecb53
move storage load to top of the whitelist function
default-juice Aug 29, 2025
306b7ec
add warning comment
default-juice Aug 29, 2025
ac57f8c
add addition comment
default-juice Aug 29, 2025
7026f73
remove lib
default-juice Aug 29, 2025
d41aab5
move hook check function to transferToken
default-juice Aug 29, 2025
8d417a2
comment out state changing admin functions
default-juice Aug 29, 2025
b85f349
Merge remote-tracking branch 'origin/beanstalk-shipments' into genera…
default-juice Aug 29, 2025
847ec5a
Merge b85f349439fee30bcc37383bdd10272cd465c3c6 into e9ab4a651f24adc13…
default-juice Aug 29, 2025
73bb880
auto-format: prettier formatting for Solidity files
actions-user Aug 29, 2025
482805d
change naming of hook management functions to match gauge
default-juice Aug 29, 2025
d05394e
Merge branch 'generalized-internal-hook-system' of github.com:pinto-o…
default-juice Aug 29, 2025
e242c3f
remove check for token hook and merge call into a single function
default-juice Aug 29, 2025
0dc7b0f
Merge e242c3f0dcedd0d8f32e17db2bab3be11fb0e171 into e9ab4a651f24adc13…
default-juice Aug 29, 2025
2e813e2
auto-format: prettier formatting for Solidity files
actions-user Aug 29, 2025
b488a01
add additional encode type
default-juice Aug 29, 2025
8451ada
Merge branch 'generalized-internal-hook-system' of github.com:pinto-o…
default-juice Aug 29, 2025
71dd4ad
use Implementation struct instead of hook struct
default-juice Aug 29, 2025
7d3c4f3
Merge 71dd4add135e5baf8e42980de652fc3d8181caec into e9ab4a651f24adc13…
default-juice Aug 29, 2025
0b49567
auto-format: prettier formatting for Solidity files
actions-user Aug 29, 2025
14d1f58
update events
default-juice Aug 29, 2025
2f0b53c
Merge branch 'generalized-internal-hook-system' of github.com:pinto-o…
default-juice Aug 29, 2025
648802b
small distributor fixes
default-juice Aug 31, 2025
9704bb5
Merge 648802b38c5eb4c165d82ce0658280f50e581637 into e08a5ea1a5aeb8ed5…
default-juice Aug 31, 2025
ffb7e19
auto-format: prettier formatting for Solidity files
actions-user Aug 31, 2025
8da46c5
clean up
default-juice Sep 2, 2025
f0840e2
Merge 8da46c5ede0a4f4dde004b01ee6d4840360c4397 into e08a5ea1a5aeb8ed5…
default-juice Sep 2, 2025
7b3a706
auto-format: prettier formatting for Solidity files
actions-user Sep 2, 2025
4fe4d96
remove comment from tractor facet
default-juice Sep 2, 2025
ef68876
reverse deltab check to benefit from lazy evaluation
default-juice Sep 2, 2025
45eaf1d
fit immutable naming in distributor
default-juice Sep 2, 2025
0b24721
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 2, 2025
291f088
cache and reuse season info
default-juice Sep 2, 2025
9582d17
Merge 291f088eb836a6a0f1d98ded51a5236b371095f1 into e08a5ea1a5aeb8ed5…
default-juice Sep 2, 2025
d6d2dea
auto-format: prettier formatting for Solidity files
actions-user Sep 2, 2025
a52eac5
fix comments, rename smart mow buffer
default-juice Sep 2, 2025
490a53e
Merge branch 'mow-plant-harvest-blueprint' of github.com:pinto-org/pr…
default-juice Sep 2, 2025
abbcd72
Merge 490a53ef26ce3ac4ba18c7b0dfbde86a7dd7f24a into e08a5ea1a5aeb8ed5…
default-juice Sep 2, 2025
52fe360
auto-format: prettier formatting for Solidity files
actions-user Sep 2, 2025
248eacf
add shared tractor base
default-juice Sep 2, 2025
6489655
dynamically resize array and add first helpers
default-juice Sep 5, 2025
5d62f9e
Merge 6489655058fa0c2061b9501321814d38a719a1d9 into e08a5ea1a5aeb8ed5…
default-juice Sep 5, 2025
49a5f11
auto-format: prettier formatting for Solidity files
actions-user Sep 5, 2025
6459124
get indexes only instead of plot structs
default-juice Sep 5, 2025
82ff27f
Merge branch 'mow-plant-harvest-blueprint' of github.com:pinto-org/pr…
default-juice Sep 5, 2025
cf90942
Merge 82ff27fc576ba397a806740cfbcf563b10e1b095 into e08a5ea1a5aeb8ed5…
default-juice Sep 5, 2025
eed7a68
auto-format: prettier formatting for Solidity files
actions-user Sep 5, 2025
ddd085f
mvp combine deposits
default-juice Sep 5, 2025
144063f
Merge branch 'mow-plant-harvest-blueprint' of github.com:pinto-org/pr…
default-juice Sep 5, 2025
4ae2a79
Merge 144063fcfdb5d1218ee8495f7fbf9aae22a79077 into e08a5ea1a5aeb8ed5…
default-juice Sep 5, 2025
e4b0500
auto-format: prettier formatting for Solidity files
actions-user Sep 5, 2025
ce5398e
modify encode and call functions to take in the hook struct, remove l…
default-juice Sep 8, 2025
5b3bc37
Merge ce5398e7c729cec2ca2cf223657ae292f506e02c into 0b24721da506f1edd…
default-juice Sep 8, 2025
37fbac3
auto-format: prettier formatting for Solidity files
actions-user Sep 8, 2025
8a81875
fix event check in silo payback tests
default-juice Sep 8, 2025
c1df157
Merge branch 'generalized-internal-hook-system' of github.com:pinto-o…
default-juice Sep 8, 2025
bc8f9f7
Merge c1df157ed33904216af725be6e728447cfd13097 into 0b24721da506f1edd…
default-juice Sep 8, 2025
ceabe88
auto-format: prettier formatting for Solidity files
actions-user Sep 8, 2025
38af806
Merge pull request #138 from pinto-org/generalized-internal-hook-system
default-juice Sep 10, 2025
67e7979
Merge branch 'mow-plant-harvest-blueprint' into tractor-base
default-juice Sep 10, 2025
10e84fa
Merge pull request #141 from pinto-org/tractor-base
default-juice Sep 10, 2025
13f6f44
Merge 10e84fa86b6cf7e3d45f94ebc9bfa4b662b2be82 into e08a5ea1a5aeb8ed5…
default-juice Sep 10, 2025
f547a17
auto-format: prettier formatting for Solidity files
actions-user Sep 10, 2025
a66e3fd
finish merging of adjascent plots
default-juice Sep 12, 2025
a9cadb5
Merge a66e3fd399d3df9567e2be637f868ade848a74f0 into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
a7b1658
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
f0cb5d1
fix typo and gas inefficiency in TempRepaymentFieldFacet
default-juice Sep 12, 2025
02b979c
Merge f0cb5d133a29551eabfdef474c0d889605e6c3a9 into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
ad823f8
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
4c68303
update repayment field init selector to remove
default-juice Sep 12, 2025
67c2d80
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 12, 2025
65828bc
refactor InitBeanstalkShipments to call functions on the diamond
default-juice Sep 12, 2025
3c09e6f
Merge 65828bc8e9694db597d55c802250233bfeafc1fb into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
dc2a54f
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
b66d3ce
comment and import fixes in BarnPayback
default-juice Sep 12, 2025
70228ea
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 12, 2025
0957e80
comment fix
default-juice Sep 12, 2025
3105fae
add abstact TractorEnabled contract and make fertilizer claims tractable
default-juice Sep 12, 2025
fa1bab1
Merge 3105fae96b9dd2b2bbeb615edb07f82207eec935 into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
8df1dbb
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
82ca189
add distributor in init
default-juice Sep 12, 2025
4312f4d
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 12, 2025
29bf19c
add named balances mapping
default-juice Sep 12, 2025
1da5f8f
distributor naming fixes
default-juice Sep 12, 2025
1e8594b
add arb contract clarification
default-juice Sep 12, 2025
deee448
Merge 1e8594b868f37fb6bdc2b1b8d985ba694ae300de into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
367c9a0
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
26260df
move distributor into interface
default-juice Sep 12, 2025
7cb0608
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 12, 2025
23573b7
Merge 7cb06088a943c882df3a10502c1992fa1ff2a429 into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
ac5ce30
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
f87ac7c
add additional natspec in SiloPayback
default-juice Sep 12, 2025
81cb968
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 12, 2025
595282a
Merge 81cb968b09f8bce75923f0e37f96333cbf2350de into e08a5ea1a5aeb8ed5…
default-juice Sep 12, 2025
c57ff44
auto-format: prettier formatting for Solidity files
actions-user Sep 12, 2025
09dd4e8
capitalize comment
default-juice Sep 16, 2025
6268cb4
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 16, 2025
e5c14b7
optimize cap calculations in planner
default-juice Sep 16, 2025
f03d509
remove redundant multiplication
default-juice Sep 16, 2025
0eb902c
clean up planner
default-juice Sep 16, 2025
d8df716
Merge 0eb902c41c477d5ae750b55794c26e22436b81bf into e08a5ea1a5aeb8ed5…
default-juice Sep 16, 2025
e9238e7
auto-format: prettier formatting for Solidity files
actions-user Sep 16, 2025
df66864
remove redundant if statement for silo payback
default-juice Sep 16, 2025
95df9ab
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 16, 2025
39eede4
inherit interface from planner
default-juice Sep 16, 2025
e51eb28
pack distribution storage and remove redundant supply check
default-juice Sep 16, 2025
f6ec3aa
update _updateReward to return account rewards if needed
default-juice Sep 16, 2025
f2fd59f
refactor to use insertPlots and add assertions about pi index
default-juice Sep 25, 2025
7f5f15c
Merge f2fd59f9e5557bf13bb3063080632d861d455ba1 into e08a5ea1a5aeb8ed5…
default-juice Sep 25, 2025
6265b9f
auto-format: prettier formatting for Solidity files
actions-user Sep 25, 2025
dd1f36f
add event upon plot combining
default-juice Sep 25, 2025
63e8113
add different tip amounts for each operation
default-juice Sep 25, 2025
76467b4
Merge branch 'mow-plant-harvest-blueprint' of github.com:pinto-org/pr…
default-juice Sep 25, 2025
26ee538
Merge 76467b464b411c114bbf1669590ea8d788d38162 into e08a5ea1a5aeb8ed5…
default-juice Sep 25, 2025
a848d12
auto-format: prettier formatting for Solidity files
actions-user Sep 25, 2025
57d0be0
refactor and clean up tests
default-juice Sep 27, 2025
79851ce
Merge branch 'mow-plant-harvest-blueprint' of github.com:pinto-org/pr…
default-juice Sep 27, 2025
59fa271
further test clean up
default-juice Sep 27, 2025
24ce8bb
fix typos in min amount validations
default-juice Sep 27, 2025
2b00b0a
per field-id harvest config
default-juice Sep 27, 2025
7843312
merge with unordered plotIndexes
default-juice Sep 29, 2025
3052437
Merge 7843312a238ac7ee1aae3d92c07a304a47148e04 into e08a5ea1a5aeb8ed5…
default-juice Sep 29, 2025
d41a648
auto-format: prettier formatting for Solidity files
actions-user Sep 29, 2025
799904c
add tests, clean up
default-juice Sep 29, 2025
4c000a7
Merge 799904c99f77745ee33d6ce62d7ae800af8fdca8 into d41a6486c411b95ed…
default-juice Sep 29, 2025
7eb1899
auto-format: prettier formatting for Solidity files
actions-user Sep 29, 2025
fae2f04
clean up tests
default-juice Sep 29, 2025
6a70bf9
Merge branch 'draft-per-field-id-tractor-harvest' of github.com:pinto…
default-juice Sep 29, 2025
c1befcc
small natspec fix
default-juice Sep 29, 2025
e792f66
move temp field facet to temp folder
default-juice Sep 29, 2025
7683e16
change length to j
default-juice Sep 29, 2025
63ddaa5
add lib transfer param to claim silo payback tokens from distributor
default-juice Sep 29, 2025
5cc145c
Merge 63ddaa5428012ea169eb53d2f5ee758c21f25e9b into e08a5ea1a5aeb8ed5…
default-juice Sep 29, 2025
e6b4d57
auto-format: prettier formatting for Solidity files
actions-user Sep 29, 2025
9c08f4c
set only receiver insted of claim from L1
default-juice Sep 29, 2025
caddc31
merge
default-juice Sep 29, 2025
fd648c9
Merge caddc31d382a5f8f8d604365920fe53694514168 into e08a5ea1a5aeb8ed5…
default-juice Sep 29, 2025
0059a85
auto-format: prettier formatting for Solidity files
actions-user Sep 29, 2025
51d7af1
add constants for inactive shipments
default-juice Sep 29, 2025
b7aff66
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 29, 2025
5d8564d
add send token call to try catch
default-juice Sep 29, 2025
f1421e4
generalize extneral receive function with call
default-juice Sep 29, 2025
5a03113
add user reward struct in silo payback
default-juice Sep 29, 2025
7aebec3
rename pinto erc20 to pintoToken in fert
default-juice Sep 29, 2025
e95fbd5
Merge 7aebec377b700378915442316fd2b99f3f0595a0 into e08a5ea1a5aeb8ed5…
default-juice Sep 29, 2025
8d7a5aa
auto-format: prettier formatting for Solidity files
actions-user Sep 29, 2025
1384851
rename pinto erc20 to pintoToken in silo
default-juice Sep 29, 2025
286a4ab
Merge branch 'beanstalk-shipments' of github.com:pinto-org/protocol i…
default-juice Sep 29, 2025
dac0e53
skip fork tests
default-juice Sep 29, 2025
7bffe31
skip fork tests
default-juice Sep 30, 2025
78519eb
move tractor enabled to abstract folder
default-juice Sep 30, 2025
3eea798
pack fert struct slots
default-juice Oct 5, 2025
2bb5567
Merge 3eea79887f1f3f483bcf550f1a6aac59cf8be98d into e08a5ea1a5aeb8ed5…
default-juice Oct 5, 2025
263cf25
auto-format: prettier formatting for Solidity files
actions-user Oct 5, 2025
6e73bcd
turn ShipmentPlanner into facet
default-juice Oct 6, 2025
bed840e
adjust natspec
default-juice Oct 6, 2025
2542fe7
Merge pull request #153 from pinto-org/beanstalk-shipments-planner-facet
default-juice Oct 11, 2025
6b983fb
Merge pull request #151 from pinto-org/draft-per-field-id-tractor-har…
default-juice Oct 11, 2025
378c26e
Merge branch 'master' into beanstalk-shipments
fr1jo Nov 18, 2025
bf9ad57
Add Foundry configuration and Beanstalk Shipments testing infrastructure
fr1jo Nov 19, 2025
a5cef87
feat: Complete Beanstalk Shipments data generation pipeline with Soli…
fr1jo Nov 19, 2025
3a46f95
feat: Add Foundry configuration and migrate Beanstalk Shipments testi…
fr1jo Nov 19, 2025
5cfd896
feat: Update LibDiamond to use Diamond storage pattern for facet sele…
fr1jo Nov 19, 2025
f39868c
Merge frijo/release/PI-wsteth-referral into pocikerim/mow-plant-harvest
pocikerim Dec 6, 2025
c5e33f7
Merge f39868ce917f38667145dcbf4ac6ab8ceff4655b into 70fabf13e9118b0d2…
pocikerim Dec 6, 2025
fd674a2
auto-format: prettier formatting for Solidity files
actions-user Dec 6, 2025
570ed92
Refactor MowPlantHarvestBlueprint to use operator-provided harvest da…
pocikerim Dec 7, 2025
7a7c2d7
Merge 570ed9267b80cd5b2c0331b2223d3859e1aada86 into 70fabf13e9118b0d2…
pocikerim Dec 7, 2025
6dbd4fb
auto-format: prettier formatting for Solidity files
actions-user Dec 7, 2025
c5fb735
fix operator
pocikerim Dec 7, 2025
49e351e
refactors
pocikerim Dec 7, 2025
dd85eab
implement stateful gauges
fr1jo Dec 10, 2025
188da98
removed unused import
pocikerim Dec 13, 2025
d1a9aab
order refactors
pocikerim Dec 13, 2025
bea7f31
move operator validation to entry points and use BlueprintBase's vali…
pocikerim Dec 13, 2025
f6e4e63
make getDefaultFilterParams take maxGrownStalkPerBdv parameter
pocikerim Dec 14, 2025
94ec78b
sow order counter logic refactor
pocikerim Dec 14, 2025
034eefb
Add beanToken immutable to BlueprintBase to avoid repeated external c…
pocikerim Dec 14, 2025
b0dd098
Add keccak256 hash value to HARVEST_DATA_KEY comment
pocikerim Dec 14, 2025
547395c
skip fields without operator harvest data instead of reverting
pocikerim Dec 14, 2025
8b385e1
remove totalHarvestablePods and use harvest return value for validation
pocikerim Dec 14, 2025
10af65d
Fix sow order completion check to handle zero minAmountToSowPerSeason
pocikerim Dec 14, 2025
e525192
Merge 10af65de3a451f6fe302af27f27fe905e6cb96de into cc3c9dcd6647ba18a…
pocikerim Dec 14, 2025
6bb020b
auto-format: prettier formatting for Solidity files
actions-user Dec 14, 2025
061027b
optimize getPlotIndexesAtPositions and getPlotIndexesByRange to avoi…
pocikerim Dec 14, 2025
9a4d3ef
Remove redundant lastExecutedSeason tracking from MowPlantHarvestBlue…
pocikerim Dec 14, 2025
adade61
naming refactor
pocikerim Dec 14, 2025
467b788
naming refactor..
pocikerim Dec 14, 2025
20bcdc3
remove redundant vars.plan and use getWithdrawalPlan instead of getWi…
pocikerim Dec 14, 2025
1e45671
Merge 20bcdc31de39d80dbe5fb5f2494a41990fd769b5 into cc3c9dcd6647ba18a…
pocikerim Dec 14, 2025
732876a
auto-format: prettier formatting for Solidity files
actions-user Dec 14, 2025
df8f07b
Remove min amount vs tip amount validations from MowPlantHarvestBluep…
pocikerim Dec 14, 2025
0336baa
optimize tip payment by using freshly harvested and planted beans whe…
pocikerim Dec 15, 2025
5fd3d60
Merge 0336baadf9f23cd2d400385200493dd6849da6dd into cc3c9dcd6647ba18a…
pocikerim Dec 15, 2025
89dbbf0
auto-format: prettier formatting for Solidity files
actions-user Dec 15, 2025
675407b
minimize LocalVars struct by removing unused fields and inlining tipA…
pocikerim Dec 15, 2025
cca0e81
update block
fr1jo Dec 20, 2025
c7ef6c0
Cache beanToken as immutable and remove redundant local variables to …
pocikerim Dec 20, 2025
a0104b8
Merge c7ef6c026133de7c26a779521b45676d0b3427bb into cc3c9dcd6647ba18a…
pocikerim Dec 20, 2025
3dedc34
auto-format: prettier formatting for Solidity files
actions-user Dec 20, 2025
9d0ee4b
remove logs
fr1jo Dec 23, 2025
a1ff484
Rename PlotCombined event to PlotsCombined for clarity
pocikerim Dec 23, 2025
b741751
naming refactors
pocikerim Dec 23, 2025
07805a9
refactor use plant() tuple return
pocikerim Dec 23, 2025
4d12449
refactor add local strategy constants
pocikerim Dec 23, 2025
ec6b24a
Refactor withdrawal strategy constants to use public getters from Sil…
pocikerim Dec 23, 2025
d0cc356
Merge ec6b24a92e68d9066306b7d0e15be07aad36c8eb into cc3c9dcd6647ba18a…
pocikerim Dec 23, 2025
670c309
auto-format: prettier formatting for Solidity files
actions-user Dec 23, 2025
074e8c6
check direct index before strategy based indices in _resolvedSourceIs…
pocikerim Dec 23, 2025
fb46387
Merge branch 'pocikerim/mow-plant-harvest' of https://github.com/pint…
pocikerim Dec 23, 2025
c9426f7
use withdrawDeposit instead of withdrawDeposits for single stem withd…
pocikerim Dec 23, 2025
51bdc1d
consolidate Pinto tip paths into single tip() call for gas optimization
pocikerim Dec 23, 2025
4869b58
Merge 51bdc1d719f2b118aacc323dfac1f9ebc85afa2c into cc3c9dcd6647ba18a…
pocikerim Dec 23, 2025
149f6ce
auto-format: prettier formatting for Solidity files
actions-user Dec 23, 2025
d3d1e66
refactor ConvertUpBlueprint inherit from BlueprintBase to reuse share…
pocikerim Dec 24, 2025
dc9a458
use Bean instead of Pinto for terminology consistency
pocikerim Dec 24, 2025
905d012
consolidate handleBeansAndTip logic into single tip flow, remove _res…
pocikerim Dec 24, 2025
984e926
Merge 905d012dc15edb31da4b9f646e53f9bc4fac6ab6 into cc3c9dcd6647ba18a…
pocikerim Dec 24, 2025
aae5564
auto-format: prettier formatting for Solidity files
actions-user Dec 24, 2025
fb8392a
fix: restore tipWithBean logic for Bean vs non-Bean source handling a…
pocikerim Jan 8, 2026
69c2ff1
remove redundant OperatorHarvestData struct and decode harvestable pl…
pocikerim Jan 8, 2026
4e23fb9
optimize harvest results array by skipping empty entries and embeddin…
pocikerim Jan 9, 2026
3a134f9
Merge remote-tracking branch 'origin/frijo/release/PI-wsteth-referral…
pocikerim Jan 9, 2026
ebfabca
Merge 3a134f925ee8d6a57697d0228141b79faaf91965 into 2f14c01aa01d9a562…
pocikerim Jan 9, 2026
22f3fea
auto-format: prettier formatting for Solidity files
actions-user Jan 9, 2026
0b913f0
Merge beanstalk-shipments branch into PI-15
fr1jo Jan 22, 2026
e40de23
Merge mow-plant-harvest branch into PI-15
fr1jo Jan 22, 2026
991a8ae
feat: deploy Protocol Diamond with comprehensive initialization and m…
fr1jo Jan 26, 2026
e989efc
feat: add Beanstalk Shipments task workflow and configure Protocol Di…
fr1jo Jan 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
289 changes: 289 additions & 0 deletions abi/Beanstalk.json
Original file line number Diff line number Diff line change
Expand Up @@ -476,6 +476,31 @@
"name": "PublishRequisition",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "target",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
}
],
"name": "TokenHookCalled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
Expand Down Expand Up @@ -1234,6 +1259,182 @@
"stateMutability": "payable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "target",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
}
],
"name": "TokenHookRegistered",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "TokenHookRemoved",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "dewhitelistTokenHook",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "getTokenHook",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
},
{
"internalType": "bytes1",
"name": "encodeType",
"type": "bytes1"
}
],
"internalType": "struct TokenHook",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "hasTokenHook",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
},
{
"internalType": "bytes1",
"name": "encodeType",
"type": "bytes1"
}
],
"internalType": "struct TokenHook",
"name": "hook",
"type": "tuple"
}
],
"name": "updateTokenHook",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
},
{
"internalType": "bytes1",
"name": "encodeType",
"type": "bytes1"
}
],
"internalType": "struct TokenHook",
"name": "hook",
"type": "tuple"
}
],
"name": "whitelistTokenHook",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
Expand Down Expand Up @@ -2001,6 +2202,94 @@
"stateMutability": "view",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "plotIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "pods",
"type": "uint256"
}
],
"name": "ReplaymentPlotAdded",
"type": "event"
},
{
"inputs": [],
"name": "REPAYMENT_FIELD_ID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "REPAYMENT_FIELD_POPULATOR",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "podIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "podAmounts",
"type": "uint256"
}
],
"internalType": "struct TempRepaymentFieldFacet.Plot[]",
"name": "plots",
"type": "tuple[]"
}
],
"internalType": "struct TempRepaymentFieldFacet.ReplaymentPlotData[]",
"name": "accountPlots",
"type": "tuple[]"
}
],
"name": "initializeRepaymentPlots",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
Expand Down
72 changes: 72 additions & 0 deletions contracts/beanstalk/facets/farm/TokenHookFacet.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
* SPDX-License-Identifier: MIT
*/

pragma solidity ^0.8.20;

import {ReentrancyGuard} from "contracts/beanstalk/ReentrancyGuard.sol";
import {Invariable} from "contracts/beanstalk/Invariable.sol";
import {LibDiamond} from "contracts/libraries/LibDiamond.sol";
import {LibTokenHook} from "contracts/libraries/Token/LibTokenHook.sol";
import {Implementation} from "contracts/beanstalk/storage/System.sol";

/**
* @title TokenHookFacet
* @notice Manages the pre-transfer hook whitelist for internal token transfers.
* @dev State changing functions are commented out to reduce security surface.
*/
contract TokenHookFacet is Invariable, ReentrancyGuard {
// /**
// * @notice Registers a pre-transfer hook for a specific token.
// * @param token The token address to register the hook for.
// * @param hook The Implementation token hook struct. (See System.{Implementation})
// */
// function whitelistTokenHook(
// address token,
// Implementation memory hook
// ) external payable fundsSafu noNetFlow noSupplyChange nonReentrant {
// LibDiamond.enforceIsOwnerOrContract();
// LibTokenHook.addTokenHook(token, hook);
// }

// /**
// * @notice Removes a pre-transfer hook for a specific token.
// * @param token The token address to remove the hook for.
// */
// function dewhitelistTokenHook(
// address token
// ) external payable fundsSafu noNetFlow noSupplyChange nonReentrant {
// LibDiamond.enforceIsOwnerOrContract();
// LibTokenHook.removeTokenHook(token);
// }

// /**
// * @notice Updates a pre-transfer hook for a specific token.
// * @param token The token address to update the hook for.
// * @param hook The new Implementation token hook struct. (See System.{Implementation})
// */
// function updateTokenHook(
// address token,
// Implementation memory hook
// ) external payable fundsSafu noNetFlow noSupplyChange nonReentrant {
// LibDiamond.enforceIsOwnerOrContract();
// LibTokenHook.updateTokenHook(token, hook);
// }

/**
* @notice Checks if token has a pre-transfer hook associated with it.
* @param token The token address to check.
*/
function hasTokenHook(address token) external view returns (bool) {
return LibTokenHook.hasTokenHook(token);
}

/**
* @notice Gets the pre-transfer hook struct for a specific token.
* @param token The token address.
* @return Implementation token hook struct for the token. (See System.{Implementation})
*/
function getTokenHook(address token) external view returns (Implementation memory) {
return LibTokenHook.getTokenHook(token);
}
}
Loading