Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

leverage_delegate

Module0xaab0…de47
Move path
0x042a…199e::leverage_delegate
Functions
33 public, 0 entry
Structs
2
Friend modules
None
leverage_delegate

Bytecode121 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module 42a1a418bf977d5306aa783288eebbc2e3ca9200b533fba7feda521e60d199e.leverage_delegate {
use 042a1a418bf977d5306aa783288eebbc2e3ca9200b533fba7feda521e60d199e::leverage_app;
use 042a1a418bf977d5306aa783288eebbc2e3ca9200b533fba7feda521e60d199e::leverage_obligation;
use f01bf3d01c8f50247fdf597e3f565b865e00b4a20a01b353d44d71c993f36e9a::float;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::app;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::deposit;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::liquidity_mining;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::market;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::obligation;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::repay;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 144c57d6014488bc71c0902bddff482af090d13e2c61333ed903fe088220a92c::x_oracle;
 
struct LeverageDelegationOperationPerformed has copy, drop {
leverage_owner_cap: ID,
operation: DelegationOperation,
asset: TypeName,
amount: u64,
price: Decimal
}
 
enum DelegationOperation has copy, drop {
Repay { },
Deposit { },
ClaimLiquidityMiningReward { }
}
 
public claim_liquidity_minging_rewards<Ty0, Ty1, Ty2>(Arg0: &LeverageApp, Arg1: &ProtocolApp, Arg2: &mut Market<Ty0>, Arg3: &LeverageMarketOwnerCap, Arg4: u8, Arg5: u64, Arg6: &Clock, Arg7: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &LeverageApp)
1Call leverage_app::ensure_version_matches(&LeverageApp)
2CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
3Call leverage_obligation::ensure_same_market<Ty0>(&LeverageMarketOwnerCap)
4CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
5Call leverage_obligation::id(&LeverageMarketOwnerCap): ID
6PackVariant(VariantHandleIndex(0))
7Call type_name::with_defining_ids<Ty1>(): TypeName
8LdU64(0)
9Call float::zero(): Decimal
10Pack[0](LeverageDelegationOperationPerformed)
11Call event::emit<LeverageDelegationOperationPerformed>(LeverageDelegationOperationPerformed)
12MoveLoc[1](Arg1: &ProtocolApp)
13MoveLoc[2](Arg2: &mut Market<Ty0>)
14MoveLoc[3](Arg3: &LeverageMarketOwnerCap)
15Call leverage_obligation::market_obligation(&LeverageMarketOwnerCap): &ObligationOwnerCap
16MoveLoc[4](Arg4: u8)
17MoveLoc[5](Arg5: u64)
18MoveLoc[6](Arg6: &Clock)
19MoveLoc[7](Arg7: &mut TxContext)
20Call liquidity_mining::claim_reward<Ty0, Ty1, Ty2>(&ProtocolApp, &mut Market<Ty0>, &ObligationOwnerCap, u8, u64, &Clock, &mut TxContext)
21Ret
}
 
public repay<Ty0, Ty1, Ty2>(Arg0: &LeverageApp, Arg1: &ProtocolApp, Arg2: &mut Market<Ty0>, Arg3: &LeverageMarketOwnerCap, Arg4: Coin<Ty2>, Arg5: &XOracle, Arg6: &Clock, Arg7: &mut TxContext): Coin<Ty2> {
B0:
0MoveLoc[0](Arg0: &LeverageApp)
1Call leverage_app::ensure_version_matches(&LeverageApp)
2CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
3Call leverage_obligation::ensure_same_market<Ty0>(&LeverageMarketOwnerCap)
4CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
5Call leverage_obligation::ensure_coins_match<Ty1, Ty2>(&LeverageMarketOwnerCap)
6CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
7Call leverage_obligation::id(&LeverageMarketOwnerCap): ID
8PackVariant(VariantHandleIndex(1))
9Call type_name::with_defining_ids<Ty2>(): TypeName
10ImmBorrowLoc[4](Arg4: Coin<Ty2>)
11Call coin::value<Ty2>(&Coin<Ty2>): u64
12MoveLoc[5](Arg5: &XOracle)
13CopyLoc[6](Arg6: &Clock)
14Call leverage_obligation::get_collateral_price<Ty1, Ty2>(&XOracle, &Clock): Decimal
15Pack[0](LeverageDelegationOperationPerformed)
16Call event::emit<LeverageDelegationOperationPerformed>(LeverageDelegationOperationPerformed)
17MoveLoc[1](Arg1: &ProtocolApp)
18MoveLoc[3](Arg3: &LeverageMarketOwnerCap)
19Call leverage_obligation::market_obligation(&LeverageMarketOwnerCap): &ObligationOwnerCap
20MoveLoc[2](Arg2: &mut Market<Ty0>)
21MoveLoc[4](Arg4: Coin<Ty2>)
22MoveLoc[6](Arg6: &Clock)
23MoveLoc[7](Arg7: &mut TxContext)
24Call repay::repay_coin_refund<Ty0, Ty2>(&ProtocolApp, &ObligationOwnerCap, &mut Market<Ty0>, Coin<Ty2>, &Clock, &mut TxContext): Coin<Ty2>
25Ret
}
 
public deposit<Ty0, Ty1, Ty2>(Arg0: &ProtocolApp, Arg1: &LeverageApp, Arg2: &mut Market<Ty0>, Arg3: &LeverageMarketOwnerCap, Arg4: Coin<Ty1>, Arg5: &XOracle, Arg6: &Clock, Arg7: &TxContext) {
B0:
0MoveLoc[1](Arg1: &LeverageApp)
1Call leverage_app::ensure_version_matches(&LeverageApp)
2CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
3Call leverage_obligation::ensure_same_market<Ty0>(&LeverageMarketOwnerCap)
4CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
5Call leverage_obligation::ensure_coins_match<Ty1, Ty2>(&LeverageMarketOwnerCap)
6CopyLoc[3](Arg3: &LeverageMarketOwnerCap)
7Call leverage_obligation::id(&LeverageMarketOwnerCap): ID
8PackVariant(VariantHandleIndex(2))
9Call type_name::with_defining_ids<Ty1>(): TypeName
10ImmBorrowLoc[4](Arg4: Coin<Ty1>)
11Call coin::value<Ty1>(&Coin<Ty1>): u64
12MoveLoc[5](Arg5: &XOracle)
13CopyLoc[6](Arg6: &Clock)
14Call leverage_obligation::get_collateral_price<Ty1, Ty2>(&XOracle, &Clock): Decimal
15Pack[0](LeverageDelegationOperationPerformed)
16Call event::emit<LeverageDelegationOperationPerformed>(LeverageDelegationOperationPerformed)
17MoveLoc[0](Arg0: &ProtocolApp)
18MoveLoc[2](Arg2: &mut Market<Ty0>)
19MoveLoc[3](Arg3: &LeverageMarketOwnerCap)
20Call leverage_obligation::market_obligation(&LeverageMarketOwnerCap): &ObligationOwnerCap
21MoveLoc[4](Arg4: Coin<Ty1>)
22MoveLoc[6](Arg6: &Clock)
23MoveLoc[7](Arg7: &TxContext)
24Call deposit::deposit<Ty0, Ty1>(&ProtocolApp, &mut Market<Ty0>, &ObligationOwnerCap, Coin<Ty1>, &Clock, &TxContext)
25Ret
}
 
}