CC3TDKJDPIRQCFCNSLS65IAYGKSMYKDPZOYM7GIMKRFSQYDAD4TRO3RX
Functions (42)
| market | (market: U32) → Result<LendingMarket> |
| reserve | (market: U32, reserve: U32) → Result<Reserve> |
| upgrade | (signer: Address, wasm_hash: BytesN) → Result<Void> |
| obligation | (market: U32, owner: Address, obligation_id: ObligationId) → Result<Obligation> |
| flash_repay | (market: U32, user: Address, reserve: U32, amount: U64) → Result<Void> |
| init_market | (owner: Address, quote_currency: BytesN) → U32 |
| redeem_fees | (market: U32, reserve: U32) → Result<Void> |
| utilization | (market: U32, reserve: U32) → Result<U128> |
| flash_borrow | (market: U32, user: Address, reserve: U32, amount: U64) → Result<Void> |
| init_reserve | (market: U32, signer: Address, liquidity_mint: Address) → Result<U32> |
| reserve_list | (market: U32) → Result<Vec<U32>> |
| __constructor | (global_admin: Address, ctoken_wasm_hash: BytesN, composer_wasm_hash: BytesN) |
| global_config | () → GlobalConfig |
| flash_precheck | (market: U32, reserve: U32, is_borrow: Bool) → Result<Void> |
| socialize_loss | (market: U32, signer: Address, reserve: U32, owner: Address, obligation_id: ObligationId, liquidity_amount: U64) → Result<Void> |
| upgrade_ctoken | (market: U32, signer: Address, reserve: U32, wasm_hash: BytesN) → Result<Void> |
| init_obligation | (market: U32, signer: Address, obligation_id: ObligationId) → Result<Void> |
| refresh_reserve | (market: U32, reserve: U32) → Result<Void> |
| accept_ownership | (market: U32, signer: Address) → Result<Void> |
| reserve_exchange | (market: U32, reserve: U32) → Result<ReserveExchange> |
| obligation_stored | (market: U32, owner: Address, obligation_id: ObligationId) → Result<Obligation> |
| set_fee_collector | (signer: Address, collector: Address) → Result<Void> |
| refresh_obligation | (market: U32, owner: Address, obligation_id: ObligationId) → Result<Void> |
| repay_and_withdraw | (market: U32, signer: Address, repay_reserve: U32, repay_amount: U64, withdraw_reserve: U32, withdraw_amount: U64, obligation_id: ObligationId) → Result<Void> |
| deposit_and_withdraw | (market: U32, signer: Address, deposit_reserve: U32, deposit_amount: U64, withdraw_reserve: U32, withdraw_amount: U64, obligation_id: ObligationId) → Result<Void> |
| liquidate_obligation | (market: U32, liquidator: Address, repay_reserve: U32, withdraw_reserve: U32, owner: Address, obligation_id: ObligationId, liquidity_amount: U64, min_received_liquidity: U64) → Result<Void> |
| set_ctoken_wasm_hash | (signer: Address, wasm_hash: BytesN) → Result<Void> |
| update_lending_market | (market: U32, signer: Address, updates: Vec<MarketUpdate>) → Result<Void> |
| update_reserve_config | (market: U32, signer: Address, reserve: U32, updates: Vec<ConfigUpdate>) → Result<Void> |
| withdraw_protocol_fees | (market: U32, reserve: U32, amount: U64) → Result<Void> |
| refresh_reserve_no_price | (market: U32, reserve: U32) → Result<Void> |
| set_pending_global_admin | (signer: Address, pending: Address) → Result<Void> |
| deposit_reserve_liquidity | (market: U32, signer: Address, reserve: U32, liquidity_amount: U64) → Result<Tuple> |
| redeem_reserve_collateral | (market: U32, signer: Address, reserve: U32, collateral_amount: U64) → Result<U64> |
| apply_pending_global_admin | (signer: Address) → Result<Void> |
| repay_obligation_liquidity | (market: U32, signer: Address, reserve: U32, amount: U64, owner: Address, obligation_id: ObligationId) → Result<U64> |
| borrow_obligation_liquidity | (market: U32, signer: Address, reserve: U32, amount: U64, obligation_id: ObligationId) → Result<U64> |
| deposit_obligation_collateral | (market: U32, signer: Address, reserve: U32, collateral_amount: U64, obligation_id: ObligationId) → Result<Void> |
| withdraw_collateral_and_redeem | (market: U32, signer: Address, reserve: U32, collateral_amount: U64, obligation_id: ObligationId) → Result<Tuple> |
| withdraw_obligation_collateral | (market: U32, signer: Address, reserve: U32, collateral_amount: U64, obligation_id: ObligationId) → Result<U64> |
| deposit_liquidity_and_collateral | (market: U32, signer: Address, reserve: U32, liquidity_amount: U64, obligation_id: ObligationId) → Result<Tuple> |
| mark_obligation_for_deleveraging | (market: U32, signer: Address, owner: Address, obligation_id: ObligationId, target_ltv_pct: U32) → Result<Void> |
Events (26)
| Upgraded | topics ["upgraded", wasm_hash: BytesN] |
| GroupInit | topics ["group_init", global_admin: Address] data (vec) [ctoken_wasm_hash: BytesN, composer: Address] |
| FlashRepay | topics ["flash_repay", market: U32, reserve: U32, user: Address] data (vec) [amount: U64, fee: U64] |
| MarketInit | topics ["market_init", market: U32, owner: Address] |
| FlashBorrow | topics ["flash_borrow", market: U32, reserve: U32, user: Address] data (vec) [amount: U64] |
| Liquidation | topics ["liquidation", market: U32, owner: Address, liquidator: Address] data (vec) [obligation_id: ObligationId, repay_reserve: U32, withdraw_reserve: U32, repay_amount: U64, withdraw_amount: U64, reason: Symbol] |
| ReserveInit | topics ["reserve_init", market: U32, reserve: U32] data (vec) [liquidity_mint: Address, ctoken: Address] |
| FeesRedeemed | topics ["fees_redeemed", market: U32, reserve: U32] data (vec) [amount: U64] |
| CTokenUpgraded | topics ["c_token_upgraded", market: U32, reserve: U32] data (vec) [wasm_hash: BytesN] |
| LossSocialized | topics ["loss_socialized", market: U32, reserve: U32, owner: Address] data (vec) [obligation_id: ObligationId, written_off_sf: U128, reserve_deprecated: Bool] |
| ObligationInit | topics ["obligation_init", market: U32, owner: Address] data (vec) [obligation_id: ObligationId] |
| RepayLiquidity | topics ["repay_liquidity", market: U32, reserve: U32, owner: Address] data (vec) [obligation_id: ObligationId, payer: Address, repaid: U64] |
| BorrowLiquidity | topics ["borrow_liquidity", market: U32, reserve: U32, user: Address] data (vec) [obligation_id: ObligationId, received: U64, fee: U64] |
| DeleveragingMark | topics ["deleveraging_mark", market: U32, owner: Address] data (vec) [obligation_id: ObligationId, target_ltv_pct: U32] |
| DepositLiquidity | topics ["deposit_liquidity", market: U32, reserve: U32, user: Address] data (vec) [liquidity: U64, collateral: U64] |
| ObligationClosed | topics ["obligation_closed", market: U32, owner: Address] data (vec) [obligation_id: ObligationId] |
| RedeemCollateral | topics ["redeem_collateral", market: U32, reserve: U32, user: Address] data (vec) [collateral: U64, liquidity: U64] |
| DepositCollateral | topics ["deposit_collateral", market: U32, reserve: U32, user: Address] data (vec) [obligation_id: ObligationId, collateral: U64] |
| MarketConfigUpdate | topics ["market_config_update", market: U32, signer: Address] |
| WithdrawCollateral | topics ["withdraw_collateral", market: U32, reserve: U32, user: Address] data (vec) [obligation_id: ObligationId, collateral: U64] |
| FeeCollectorChanged | topics ["fee_collector_changed", collector: Address] |
| GlobalAdminProposed | topics ["global_admin_proposed", pending: Address] |
| ReserveConfigUpdate | topics ["reserve_config_update", market: U32, reserve: U32] data (vec) [signer: Address] |
| OwnershipTransferred | topics ["ownership_transferred", market: U32, new_owner: Address] |
| ProtocolFeesWithdrawn | topics ["protocol_fees_withdrawn", market: U32, reserve: U32, receiver: Address] data (vec) [amount: U64] |
| GlobalAdminTransferred | topics ["global_admin_transferred", new_admin: Address] |
Types (17)
| LendingError error | InvalidSigner = 1, ReserveNotFound = 3, MarketNotFound = 64, InvalidAmount = 4, InvalidConfig = 5, InvalidOracleConfig = 6, InvalidBorrowRateCurvePoint = 7, DepositLimitExceeded = 8, ReserveObsolete = 9, ReserveEmergencyMode = 10, InsufficientLiquidity = 11, ReserveHasNotReceivedInitialDeposit = 12, MathOverflow = 13, CTokenUsageBlocked = 14, WithdrawalCapReached = 15, PriceNotValid = 16, ObligationAlreadyExists = 17, ObligationNotFound = 18, ObligationReserveLimit = 19, ObligationDepositsEmpty = 20, InvalidObligationCollateral = 21, ObligationCollateralEmpty = 22, NetValueRemainingTooSmall = 23, ObligationInObsoleteReserve = 24, BorrowTooLarge = 25, BorrowLimitExceeded = 26, BorrowTooSmall = 27, ObligationBorrowsEmpty = 28, InvalidObligationLiquidity = 29, ObligationLiquidityEmpty = 30, RepayTooSmall = 31, WorseLtvThanUnhealthyLtv = 32, LiabilitiesBiggerThanAssets = 33, ReserveStale = 34, ObligationDepositsZero = 35, ObligationStale = 61, OperationNotPermittedMarketImmutable = 62, MaximumWithdrawValueZero = 36, WithdrawTooLarge = 37, WithdrawTooSmall = 38, WorseLtvBlocked = 39, InvalidObligationSeedsValue = 40, NegativeInterestRate = 41, GlobalEmergencyMode = 42, ObligationBorrowsZero = 43, ObligationHealthy = 44, LiquidationTooSmall = 45, LiquidationRewardTooSmall = 46, CollateralNonLiquidatable = 47, RepayTooSmallForFullLiquidation = 48, InsufficientRepayAmount = 49, LiquidationBorrowFactorPriority = 50, LiquidationLowestLiquidationLtvPriority = 51, BorrowingAboveUtilizationRateDisabled = 52, InsufficientProtocolFeesToRedeem = 53, CannotUseSameReserve = 54, ZeroMaxLtvAssetsInDeposits = 55, LowestLtvAssetsPriority = 56, BorrowingDisabled = 57, CannotSocializeObligationWithCollateral = 58, ObligationEmpty = 59, ReserveDeprecated = 60, FlashLoansDisabled = 63, ObligationCurrentlyMarkedForDeleveraging = 65, InvalidTwapConfig = 66 |
| Reserve struct | { accumulated_protocol_fees_sf: U128, available: U64, borrow_limit_crossed_ts: U64, borrowed_sf: U128, collateral_mint_total_supply: U64, collected_fees: U64, config: ReserveConfig, ctoken: Address, cumulative_borrow_rate_sf: U128, deposit_limit_crossed_ts: U64, deprecated: Bool, id: U32, last_update_ts: U64, liquidity_mint: Address, market_price_last_updated_ts: U64, market_price_sf: U128, mint_decimals: U32, twap_checked: Bool } |
| CurvePoint struct | { borrow_rate_bps: U32, utilization_rate_bps: U32 } |
| Obligation struct | { adl_margin_call_started_ts: U64, adl_target_ltv_pct: U32, allowed_borrow_value_sf: U128, bf_adjusted_debt_value_sf: U128, borrowed_assets_value_sf: U128, borrows: Vec<ObligationLiquidity>, deposited_value_sf: U128, deposits: Vec<ObligationCollateral>, highest_borrow_factor_pct: U64, last_update_ts: U64, lowest_deposit_liquidation_ltv: U32, lowest_deposit_max_ltv_pct: U32, num_obsolete_borrow_reserves: U32, num_obsolete_deposit_reserves: U32, obligation_id: ObligationId, owner: Address, prices_usable: Bool, unhealthy_borrow_value_sf: U128 } |
| GlobalConfig struct | { composer: Address, ctoken_wasm_hash: BytesN, fee_collector: Address, global_admin: Address, market_count: U32, pending_global_admin: Address } |
| MarketUpdate union | ProposeOwner(Address) | EmergencyMode(Bool) | EmergencyCouncil(Address) | MinInitialDepositAmount(U64) | ProposerAuthority(Address) | LiquidationCloseFactorPct(U32) | MinFullLiquidationValue(U64) | InsolvencyRiskLtvPct(U32) | MinValueSkipLiqLtvChecks(U64) | MinValueSkipLiqBfChecks(U64) | PriceTriggeredLiqDisabled(Bool) | BorrowingDisabled(Bool) | ImmutableFlag(Bool) | MaxLiquidatableValueAtOnce(U64) | GlobalAllowedBorrowValue(U64) | MinNetValueSf(U128) | AutodeleverageEnabled(Bool) | IndividualAdlPeriodSecs(U64) | Name(BytesN) | PriceRefreshTriggerPct(U32) |
| ObligationId struct | { id: U32, seed1: Option<Address>, seed2: Option<Address>, tag: U32 } |
| ScopePricing struct | { max_age_twap_seconds: U64, max_twap_divergence_bps: U32, price_alias: String, scope: Address, twap_alias: String } |
| LendingMarket struct | { autodeleverage_enabled: Bool, borrowing_disabled: Bool, emergency_council: Option<Address>, emergency_mode: Bool, global_allowed_borrow_value: U64, immutable: Bool, individual_adl_period_secs: U64, insolvency_risk_ltv_pct: U32, liq_max_debt_close_factor_pct: U32, max_liquidatable_value_at_once: U64, min_full_liquidation_value: U64, min_initial_deposit_amount: U64, min_net_value_sf: U128, min_value_skip_liq_bf_checks: U64, min_value_skip_liq_ltv_checks: U64, name: BytesN, owner: Address, owner_cached: Option<Address>, price_refresh_trigger_pct: U32, price_triggered_liq_disabled: Bool, proposer_authority: Option<Address>, quote_currency: BytesN, reserve_count: U32 } |
| ReserveConfig struct | { adl_bonus_increase_bps_day: U64, adl_margin_call_period_secs: U64, adl_threshold_decrease_bps_day: U64, autodeleverage_enabled: Bool, bad_debt_liquidation_bonus_bps: U32, block_ctoken_usage: Bool, block_price_usage: Bool, borrow_factor_pct: U64, borrow_limit: U64, borrow_rate_curve: Vec<CurvePoint>, debt_withdrawal_cap: WithdrawalCaps, deposit_limit: U64, deposit_withdrawal_cap: WithdrawalCaps, emergency_mode: Bool, flash_loan_fee_sf: U64, liquidation_threshold_pct: U32, loan_to_value_pct: U32, max_age_price_seconds: U64, max_liquidation_bonus_bps: U32, min_deleveraging_bonus_bps: U32, min_liquidation_bonus_bps: U32, origination_fee_sf: U128, pricing: ReservePricing, proposer_authority_locked: Bool, protocol_liquidation_fee_pct: U32, protocol_take_rate_pct: U32, status: ReserveStatus, token_name: BytesN, utilization_limit_borrow_pct: U32 } |
| ReserveStatus enum | Active = 0, Obsolete = 1, Hidden = 2 |
| ReservePricing union | Unset | Scope(ScopePricing) |
| WithdrawalCaps struct | { config_capacity: I64, config_interval_length_seconds: U64, current_total: I64, last_interval_start_ts: U64 } |
| ObligationLiquidity struct | { bf_adjusted_market_value_sf: U128, borrow_reserve: Option<U32>, borrowed_sf: U128, cumulative_borrow_rate_sf: U128, market_value_sf: U128 } |
| ObligationCollateral struct | { deposit_reserve: Option<U32>, deposited_amount: U64, market_value_sf: U128 } |
| ConfigUpdate union | Status(U32) | EmergencyMode(Bool) | BlockCTokenUsage(Bool) | BlockPriceUsage(Bool) | DepositLimit(U64) | BorrowLimit(U64) | LoanToValuePct(U32) | LiquidationThresholdPct(U32) | MinLiquidationBonusBps(U32) | MaxLiquidationBonusBps(U32) | ProtocolTakeRatePct(U32) | UtilizationLimitBorrowPct(U32) | BadDebtLiquidationBonusBps(U32) | ProtocolLiquidationFeePct(U32) | OriginationFeeSf(U128) | FlashLoanFeeSf(U64) | BorrowFactorPct(U64) | ProposerAuthorityLocked(Bool) | BorrowRateCurve(Vec<CurvePoint>) | DepositWithdrawalCap(U64, U64) | DebtWithdrawalCap(U64, U64) | ScopePricing(ScopePricing) | PriceMaxAgeSeconds(U64) | TokenName(BytesN) | AutodeleverageEnabled(Bool) | AdlMarginCallPeriodSecs(U64) | AdlThresholdDecreaseBpsDay(U64) | AdlBonusIncreaseBpsDay(U64) | MinDeleveragingBonusBps(U32) |
| ReserveExchange struct | { collateral_supply: U64, ctoken: Address, liquidity_mint: Address, total_liquidity_sf: U128 } |
Simulates the call against current ledger state — read-only, nothing is signed or submitted, no funds at risk.
| Key | Value |
|---|---|
| ["GlobalConfig"] | ["V1",{"composer":"CA5E3EBTH2U2NWZBZN7JV4X3R3BP74ITYAPMAYSRCDS4MAJGJHQM5WIX","ctoken_wasm_hash":"a5f6b06ca8fb10a7f3d12ba5fae3361f04a242054757080cf14c375b88e1c898","fee_collector":"GA5KUXIGDUEN6QSKEPIG7L4777N4PVR27BPCYWDIKUV3RP3H5YYYVVPH","global_admin":"GA5KUXIGDUEN6QSKEPIG7L4777N4PVR27BPCYWDIKUV3RP3H5YYYVVPH","market_count":5,"pending_global_admin":"GA5KUXIGDUEN6QSKEPIG7L4777N4PVR27BPCYWDIKUV3RP3H5YYYVVPH"}] |
Look up a specific persistent/temporary storage entry by key. Soroban RPC has no way to list all storage keys for a contract — you need to already know the key you're after.