Skip to content

Commit bfc0746

Browse files
authored
fix: rectify shrine assets in frontend data provider (#583)
1 parent 7d111e0 commit bfc0746

10 files changed

+364
-256
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ target/
88
.snfoundry_cache/
99

1010
scripts/deployment/deploy_devnet_alpha-sepolia_state.json
11+
scripts/deployment/upgrade_fdp_devnet_alpha-sepolia_state.json
1112

1213
scripts/simulation/open_trove_alpha-sepolia_state.json
1314
scripts/simulation/open_trove_max_forge_alpha-sepolia_state.json

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ Once you kill your Devnet instance, the state is lost unless the latest `devnet_
2222

2323
| Module | Address |
2424
| ------ | --------|
25-
| Abbot | `0x55753ea07d7c53b0d512dd14aa1fb536b02efc179907905610619eecaac1e97` |
26-
| Absorber | `0x32e5f6bfc937e239e9f1c7c2c30f0d8ce59d7d703d82bc69382b4d2b0be1e4e` |
27-
| Allocator | `0x470ad58d601501eab46479e69c0d9367e2b429aca88a1775114e3b074b2117b` |
28-
| Caretaker | `0x1461305951ac7fb7af835a9a19b99ae5e135ba1fb64477d4b92a871fb85a2b1` |
29-
| Controller | `0x5c4d4b9ce7f54dc50354b99dfca29c3ba3935501e5244e048fa87b83043ddc2` |
30-
| Equalizer | `0x54b46ed341533fe4da0116f27e201276165e3a3fd030ac391b6e9967668996d` |
31-
| Flash Mint | `0x6f1577c508f95e633d22eaa65c5781442651336d30a95ba149a80fd85db29bc` |
32-
| Frontend Data Provider | `0x6f7cf629552047a337324712571068b3f8f2deddcc0454533596ef5dfa192d` |
33-
| Gate[ETH] | `0x23dbc80de342f86f2b33b27d5593c259809961d9ecbd9f69b7088babba1016f` |
34-
| Gate[STRK] | `0x2918116ed1154cfe378eaefa5ee83914c9bed787815cdb5a82d25185737dad` |
35-
| Pragma | `0xa163eb702f1cba67680cb67a2ad018dd6d349b76ebc9d85102a83857948304` |
36-
| Purger | `0x1e188c4223245660e692e7f0b9834d11687cec5aa37da0889cbe2e2e2743c28` |
37-
| Seer | `0x1ba77782ba5dea67bcf4f71c2b98849b598d030df02952bf8f62e3eb6b5b192` |
38-
| Sentinel | `0x255e43013fd414520d27a0491c64aa03705e6f728999d0ceb44e395ac5c9c1d` |
39-
| Shrine | `0x7d2a06078ee45540e9507a0daf01ac94f0550b675958dda88cbbc6fc8993708` |
25+
| Abbot | `0x04280b97ecb8f1e0536e41888e387a04c3796e393f7086e5e24d61614927bc30` |
26+
| Absorber | `0x05cf86333b32580be7a73c8150f2176047bab151df7506b6e30217594798fab5` |
27+
| Allocator | `0x00dd24daea0f6cf5ee0a206e6a27c4d5b66a978f19e3a4877de23ab5a76f905d` |
28+
| Caretaker | `0x004eb68cdc4009f0a7af80ecb34b91822649b139713e7e9eb9b11b10ee47aada` |
29+
| Controller | `0x0005efaa9df09e86be5aa8ffa453adc11977628ddc0cb493625ca0f3caaa94b2` |
30+
| Equalizer | `0x013be5f3de034ca1a0dec2b2da4cce2d0fe5505511cbea7a309979c45202d052` |
31+
| Flash Mint | `0x0726e7d7bef2bcfc2814e0d5f0735b1a9326a98f2307a5edfda8db82d60d3f5f` |
32+
| Frontend Data Provider | `0x03d124e4166a09fb92787d480d44d6c25e6f638f706f8ae4074ee2766b634293` |
33+
| Gate[ETH] | `0x02e1e0988565d99cd3a384e9f9cf2d348af50ee1ad549880aa37ba625e8c98d6` |
34+
| Gate[STRK] | `0x05c6ec6e1748fbab3d65c2aa7897aeb7d7ec843331c1a469666e162da735fd5f` |
35+
| Pragma | `0x02a67fac89d6921b05067b99e2491ce753778958ec89b0b0221b22c16a3073f7` |
36+
| Purger | `0x0397fda455fd16d76995da81908931057594527b46cc99e12b8e579a9127e372` |
37+
| Seer | `0x07bdece1aeb7f2c31a90a6cc73dfdba1cb9055197cca24b6117c9e0895a1832d` |
38+
| Sentinel | `0x04c4d997f2a4b1fbf9db9c290ea1c97cb596e7765e058978b25683efd88e586d` |
39+
| Shrine | `0x0398c179d65929f3652b6b82875eaf5826ea1c9a9dd49271e0d749328186713e` |

devnet_dump.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

scripts/deployment/Scarb.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,8 @@ build-external-contracts = [
4141
deploy_devnet = "rm deploy_devnet_alpha-sepolia_state.json 2> /dev/null; sncast --profile devnet script run deploy_devnet --package deployment"
4242
deploy_sepolia = "sncast --profile sepolia script run deploy_sepolia --package deployment"
4343

44+
upgrade_fdp_devnet = "rm upgrade_fdp_devnet_alpha-sepolia_state.json 2> /dev/null; sncast --profile devnet script run upgrade_fdp_devnet --package deployment"
45+
upgrade_fdp_sepolia = "sncast --profile sepolia script run upgrade_fdp_sepolia --package deployment"
46+
4447
[tool]
4548
fmt.workspace = true

scripts/deployment/deploy_sepolia_alpha-sepolia_state.json

Lines changed: 229 additions & 239 deletions
Large diffs are not rendered by default.

scripts/deployment/src/lib.cairo

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ mod deploy_devnet;
33
mod deploy_sepolia;
44
pub mod mock_deployment;
55
pub mod periphery_deployment;
6+
mod upgrade_fdp_devnet;
7+
mod upgrade_fdp_sepolia;
68
pub mod utils;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
use scripts::addresses;
2+
use scripts::constants::MAX_FEE;
3+
use sncast_std::{declare, DeclareResult, invoke, InvokeResult, DisplayContractAddress};
4+
use starknet::{ClassHash, ContractAddress};
5+
6+
fn main() {
7+
println!("Declaring new frontend data provider contract");
8+
9+
let declare_frontend_data_provider = declare("frontend_data_provider", Option::Some(MAX_FEE), Option::None)
10+
.expect('failed FDP declare');
11+
12+
println!("Upgrading frontend data provider with new class hash");
13+
14+
let calldata: Array<felt252> = array![declare_frontend_data_provider.class_hash.into()];
15+
invoke(
16+
addresses::devnet::frontend_data_provider(),
17+
selector!("upgrade"),
18+
calldata,
19+
Option::Some(MAX_FEE),
20+
Option::None,
21+
)
22+
.expect('upgrade failed');
23+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
use scripts::addresses;
2+
use scripts::constants::MAX_FEE;
3+
use sncast_std::{declare, DeclareResult, invoke, InvokeResult, DisplayContractAddress};
4+
use starknet::{ClassHash, ContractAddress};
5+
6+
fn main() {
7+
println!("Declaring new frontend data provider contract");
8+
9+
let declare_frontend_data_provider = declare("frontend_data_provider", Option::Some(MAX_FEE), Option::None)
10+
.expect('failed FDP declare');
11+
12+
println!("Upgrading frontend data provider with new class hash");
13+
14+
let calldata: Array<felt252> = array![declare_frontend_data_provider.class_hash.into()];
15+
invoke(
16+
addresses::sepolia::frontend_data_provider(),
17+
selector!("upgrade"),
18+
calldata,
19+
Option::Some(MAX_FEE),
20+
Option::None,
21+
)
22+
.expect('upgrade failed');
23+
}

scripts/src/addresses.cairo

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,65 @@ pub mod sepolia {
125125
.try_into()
126126
.expect('invalid pragma twap address')
127127
}
128+
129+
// deployments
130+
pub fn abbot() -> ContractAddress {
131+
0x04280b97ecb8f1e0536e41888e387a04c3796e393f7086e5e24d61614927bc30.try_into().unwrap()
132+
}
133+
134+
pub fn absorber() -> ContractAddress {
135+
0x05cf86333b32580be7a73c8150f2176047bab151df7506b6e30217594798fab5.try_into().unwrap()
136+
}
137+
138+
pub fn allocator() -> ContractAddress {
139+
0x00dd24daea0f6cf5ee0a206e6a27c4d5b66a978f19e3a4877de23ab5a76f905d.try_into().unwrap()
140+
}
141+
142+
pub fn caretaker() -> ContractAddress {
143+
0x004eb68cdc4009f0a7af80ecb34b91822649b139713e7e9eb9b11b10ee47aada.try_into().unwrap()
144+
}
145+
146+
pub fn controller() -> ContractAddress {
147+
0x0005efaa9df09e86be5aa8ffa453adc11977628ddc0cb493625ca0f3caaa94b2.try_into().unwrap()
148+
}
149+
150+
pub fn equalizer() -> ContractAddress {
151+
0x013be5f3de034ca1a0dec2b2da4cce2d0fe5505511cbea7a309979c45202d052.try_into().unwrap()
152+
}
153+
154+
pub fn eth_gate() -> ContractAddress {
155+
0x02e1e0988565d99cd3a384e9f9cf2d348af50ee1ad549880aa37ba625e8c98d6.try_into().unwrap()
156+
}
157+
158+
pub fn flash_mint() -> ContractAddress {
159+
0x0726e7d7bef2bcfc2814e0d5f0735b1a9326a98f2307a5edfda8db82d60d3f5f.try_into().unwrap()
160+
}
161+
162+
pub fn frontend_data_provider() -> ContractAddress {
163+
0x03d124e4166a09fb92787d480d44d6c25e6f638f706f8ae4074ee2766b634293.try_into().unwrap()
164+
}
165+
166+
pub fn pragma() -> ContractAddress {
167+
0x02a67fac89d6921b05067b99e2491ce753778958ec89b0b0221b22c16a3073f7.try_into().unwrap()
168+
}
169+
170+
pub fn purger() -> ContractAddress {
171+
0x0397fda455fd16d76995da81908931057594527b46cc99e12b8e579a9127e372.try_into().unwrap()
172+
}
173+
174+
pub fn seer() -> ContractAddress {
175+
0x07bdece1aeb7f2c31a90a6cc73dfdba1cb9055197cca24b6117c9e0895a1832d.try_into().unwrap()
176+
}
177+
178+
pub fn sentinel() -> ContractAddress {
179+
0x04c4d997f2a4b1fbf9db9c290ea1c97cb596e7765e058978b25683efd88e586d.try_into().unwrap()
180+
}
181+
182+
pub fn shrine() -> ContractAddress {
183+
0x0398c179d65929f3652b6b82875eaf5826ea1c9a9dd49271e0d749328186713e.try_into().unwrap()
184+
}
185+
186+
pub fn strk_gate() -> ContractAddress {
187+
0x05c6ec6e1748fbab3d65c2aa7897aeb7d7ec843331c1a469666e162da735fd5f.try_into().unwrap()
188+
}
128189
}

src/periphery/frontend_data_provider.cairo

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ pub mod frontend_data_provider {
110110
let shrine: IShrineDispatcher = self.shrine.read();
111111
let sentinel: ISentinelDispatcher = self.sentinel.read();
112112

113+
let mut shrine_yang_balances: Span<YangBalance> = shrine.get_shrine_deposits();
113114
let mut trove_yang_balances: Span<YangBalance> = shrine.get_trove_deposits(trove_id);
114115
let mut yang_addresses: Span<ContractAddress> = sentinel.get_yang_addresses();
115116

@@ -125,7 +126,11 @@ pub mod frontend_data_provider {
125126

126127
let (shrine_asset_info, yang_price) = self
127128
.get_shrine_asset_info_helper(
128-
shrine, sentinel, yang, *yang_balance.amount, current_rate_era
129+
shrine,
130+
sentinel,
131+
yang,
132+
(*shrine_yang_balances.pop_front().unwrap()).amount,
133+
current_rate_era
129134
);
130135

131136
let asset_amt: u128 = sentinel.convert_to_assets(yang, *yang_balance.amount);

0 commit comments

Comments
 (0)