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

API

leverage_app

Module0xaab0…de47
Move path
0x042a…199e::leverage_app
Functions
91 public, 0 entry
Structs
3
leverage_app

Bytecode206 lines

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

// Move bytecode v6
module 42a1a418bf977d5306aa783288eebbc2e3ca9200b533fba7feda521e60d199e.leverage_app {
use 042a1a418bf977d5306aa783288eebbc2e3ca9200b533fba7feda521e60d199e::leverage_error;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::app;
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::whitelist_admin;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct LEVERAGE_APP has drop {
dummy_field: bool
}
 
struct LeverageMarketUniqueKey has copy, drop, store {
lending_market: ID,
emode_group: u8
}
 
struct LeverageApp has store, key {
id: UID,
version: u64,
markets: Table<LeverageMarketUniqueKey, bool>,
protocol_caller_cap: vector<PackageCallerCap>
}
 
init(Arg0: LEVERAGE_APP, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: LEVERAGE_APP)
1CopyLoc[1](Arg1: &mut TxContext)
2Call package::claim_and_keep<LEVERAGE_APP>(LEVERAGE_APP, &mut TxContext)
3MoveLoc[1](Arg1: &mut TxContext)
4Call create(&mut TxContext): LeverageApp
5Call transfer::public_share_object<LeverageApp>(LeverageApp)
6Ret
}
 
create(Arg0: &mut TxContext): LeverageApp {
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2LdConst[0](u64: 1)
3MoveLoc[0](Arg0: &mut TxContext)
4Call table::new<LeverageMarketUniqueKey, bool>(&mut TxContext): Table<LeverageMarketUniqueKey, bool>
5VecPack(17, 0)
6Pack[2](LeverageApp)
7Ret
}
 
public current_version(): u64 {
B0:
0LdConst[0](u64: 1)
1Ret
}
 
public(friend) accept_protocol_caller_cap(Arg0: &mut LeverageApp, Arg1: PackageCallerCap) {
B0:
0CopyLoc[0](Arg0: &mut LeverageApp)
1ImmBorrowField[0](LeverageApp.protocol_caller_cap: vector<PackageCallerCap>)
2VecLen(17)
3LdU64(0)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut LeverageApp)
8Pop
9Call leverage_error::already_assigned_caller_cap(): u64
10Abort
B3:
11MoveLoc[0](Arg0: &mut LeverageApp)
12MutBorrowField[0](LeverageApp.protocol_caller_cap: vector<PackageCallerCap>)
13MoveLoc[1](Arg1: PackageCallerCap)
14VecPushBack(17)
15Ret
}
 
public(friend) revoke_protocol_caller_cap(Arg0: &mut LeverageApp, Arg1: &mut ProtocolApp) {
L2: loc0: PackageCallerCap
B0:
0CopyLoc[0](Arg0: &mut LeverageApp)
1ImmBorrowField[0](LeverageApp.protocol_caller_cap: vector<PackageCallerCap>)
2VecLen(17)
3LdU64(1)
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[0](Arg0: &mut LeverageApp)
8Pop
9MoveLoc[1](Arg1: &mut ProtocolApp)
10Pop
11Call leverage_error::no_caller_cap(): u64
12Abort
B3:
13MoveLoc[0](Arg0: &mut LeverageApp)
14MutBorrowField[0](LeverageApp.protocol_caller_cap: vector<PackageCallerCap>)
15VecPopBack(17)
16StLoc[2](loc0: PackageCallerCap)
17MoveLoc[1](Arg1: &mut ProtocolApp)
18MoveLoc[2](loc0: PackageCallerCap)
19Call whitelist_admin::burn_whitelist(&mut ProtocolApp, PackageCallerCap)
20Ret
}
 
public(friend) borrow_protocol_caller_cap(Arg0: &LeverageApp): &PackageCallerCap {
B0:
0CopyLoc[0](Arg0: &LeverageApp)
1ImmBorrowField[0](LeverageApp.protocol_caller_cap: vector<PackageCallerCap>)
2VecLen(17)
3LdU64(1)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &LeverageApp)
8Pop
9Call leverage_error::no_caller_cap(): u64
10Abort
B3:
11MoveLoc[0](Arg0: &LeverageApp)
12ImmBorrowField[0](LeverageApp.protocol_caller_cap: vector<PackageCallerCap>)
13LdU64(0)
14VecImmBorrow(17)
15Ret
}
 
public(friend) ensure_version_matches(Arg0: &LeverageApp) {
B0:
0MoveLoc[0](Arg0: &LeverageApp)
1ImmBorrowField[1](LeverageApp.version: u64)
2ReadRef
3LdConst[0](u64: 1)
4Eq
5BrFalse(7)
B1:
6Branch(9)
B2:
7Call leverage_error::version_mismatch(): u64
8Abort
B3:
9Ret
}
 
public(friend) migrate(Arg0: &mut LeverageApp): u64 {
B0:
0CopyLoc[0](Arg0: &mut LeverageApp)
1ImmBorrowField[1](LeverageApp.version: u64)
2ReadRef
3LdConst[0](u64: 1)
4Lt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut LeverageApp)
8Pop
9Call leverage_error::version_mismatch(): u64
10Abort
B3:
11LdConst[0](u64: 1)
12MoveLoc[0](Arg0: &mut LeverageApp)
13MutBorrowField[1](LeverageApp.version: u64)
14WriteRef
15LdConst[0](u64: 1)
16Ret
}
 
public(friend) add_market(Arg0: &mut LeverageApp, Arg1: ID, Arg2: u8) {
L3: loc0: LeverageMarketUniqueKey
B0:
0MoveLoc[1](Arg1: ID)
1MoveLoc[2](Arg2: u8)
2Pack[1](LeverageMarketUniqueKey)
3StLoc[3](loc0: LeverageMarketUniqueKey)
4CopyLoc[0](Arg0: &mut LeverageApp)
5ImmBorrowField[2](LeverageApp.markets: Table<LeverageMarketUniqueKey, bool>)
6CopyLoc[3](loc0: LeverageMarketUniqueKey)
7Call table::contains<LeverageMarketUniqueKey, bool>(&Table<LeverageMarketUniqueKey, bool>, LeverageMarketUniqueKey): bool
8Not
9BrFalse(11)
B1:
10Branch(15)
B2:
11MoveLoc[0](Arg0: &mut LeverageApp)
12Pop
13Call leverage_error::market_already_exists(): u64
14Abort
B3:
15MoveLoc[0](Arg0: &mut LeverageApp)
16MutBorrowField[2](LeverageApp.markets: Table<LeverageMarketUniqueKey, bool>)
17MoveLoc[3](loc0: LeverageMarketUniqueKey)
18LdTrue
19Call table::add<LeverageMarketUniqueKey, bool>(&mut Table<LeverageMarketUniqueKey, bool>, LeverageMarketUniqueKey, bool)
20Ret
}
 
Constants [
0 => u64: 1
]
}