Created
October 19, 2025 01:46
-
-
Save tserg/c572379b6e4dcb55aab3d3d684cef448 to your computer and use it in GitHub Desktop.
Fetch information about a user's troves
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
| // Addresses | |
| // Abbot: 0x04d0bb0a4c40012384e7c419e6eb3c637b28e8363fb66958b60d90505b9c072f | |
| // Frontend Data Provider (FDP): 0x023037703b187f6ff23b883624a0a9f266c9d44671e762048c70100c2f128ab9 | |
| // https://scarbs.xyz/packages/opus | |
| // https://github.com/lindy-labs/opus_interfaces/blob/main/src/interfaces/abbot.cairo | |
| // https://github.com/lindy-labs/opus_interfaces/blob/main/src/interfaces/frontend_data_provider.cairo | |
| use opus::interfaces::{IAbbotDispatcher, IAbbotDispatcherTrait, IFrontendDataProvider, IFrontEndDataProviderTrait}; | |
| use opus::types::{ShrineAssetInfo, TroveAssetInfo, TroveInfo}; | |
| // https://scarbs.xyz/packages/wadray | |
| use wadray::Wad; | |
| const ABBOT: ContractAddress = 0x04d0bb0a4c40012384e7c419e6eb3c637b28e8363fb66958b60d90505b9c072f; | |
| const FDP: ContractAddress = 0x023037703b187f6ff23b883624a0a9f266c9d44671e762048c70100c2f128ab9; | |
| const SURVIVOR: ContractAddress = 0x042dd777885ad2c116be96d4d634abc90a26a790ffb5871e037dd5ae7d2ec86b; | |
| let abbot = IAbbotDispatcher { contract_address: ABBOT }; | |
| let user: ContractAddress = 0xdeadbeef; | |
| let mut user_troves: Span<u64> = abbot.get_user_trove_ids(user); | |
| let fdp = IFrontendDataProvider { contract_address: FDP }; | |
| let trove_id: u64 = user_troves.pop_front().unwrap(); | |
| let trove_info: TroveInfo = fdp.get_trove_info(trove_id); | |
| let mut deposited_survivor_tokens: u128 = Zero::zero(); | |
| let mut deposited_survivor_value: Wad = Zero::zero(); | |
| for trove_asset_info in trove_info.assets { | |
| if trove_asset_info.shrine_asset_info.address == SURVIVOR { | |
| deposited_survivor_value = trove_asset_info.value; | |
| deposited_survivor_tokens = trove_asset_info.amount; | |
| break; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment