generic_store
Module0x45ba…fc70
- Move path
- 0xfe1d…80bf::generic_store
- Functions
- 100 public, 0 entry
- Structs
- 2
- Friend modules
- adlctoken_tableemodemarket
generic_store
- adl21
- adl_admin6
- app17
- asset21
- asset_admin7
- borrow1
- borrow_index4
- coin_decimals_registry5
- ctoken1
- ctoken_table9
- debt9
- decimals_admin2
- deposit1
- emode31
- emode_admin6
- enter_market4
- error81
- flash_loan5
- generic_store10
- interest8
- limiter10
- liquidate6
- liquidity_miner14
- liquidity_mining2
- liquidity_mining_admin3
- liquidity_mining_reward_manager17
- market50
- market_admin6
- market_query3
- market_type0
- obligation17
- obligation_query2
- query_types3
- referral19
- referral_admin2
- repay3
- reserve25
- revenue_admin1
- user_rebates8
- value2
- version_admin1
- whitelist_admin8
- wit_table11
- withdraw2
Bytecode125 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v6
module fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf.generic_store {
use fe1d8929d13b00aaecd7642dec1c6d41cab82882a1b139efa46bf61dfd6380bf::wit_table;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
struct GenericCoinTypeStorage<phantom Ty0: store> has store {
table: WitTable<GenericTable, TypeName, Ty0>
}
struct GenericTable has drop {
dummy_field: bool
}
public(friend) new<Ty0: store>(Arg0: &mut TxContext): GenericCoinTypeStorage<Ty0> {
B0:
0LdFalse
1Pack[1](GenericTable)
2LdTrue
3MoveLoc[0](Arg0: &mut TxContext)
4Call wit_table::new<GenericTable, TypeName, Ty0>(GenericTable, bool, &mut TxContext): WitTable<GenericTable, TypeName, Ty0>
5PackGeneric[0](GenericCoinTypeStorage<Ty0>)
6Ret
}
public(friend) supports<Ty0: store, Ty1>(Arg0: &GenericCoinTypeStorage<Ty0>): bool {
L1: loc0: TypeName
B0:
0Call type_name::with_defining_ids<Ty1>(): TypeName
1StLoc[1](loc0: TypeName)
2MoveLoc[0](Arg0: &GenericCoinTypeStorage<Ty0>)
3ImmBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
4MoveLoc[1](loc0: TypeName)
5Call wit_table::contains<GenericTable, TypeName, Ty0>(&WitTable<GenericTable, TypeName, Ty0>, TypeName): bool
6Ret
}
public(friend) supports_type<Ty0: store>(Arg0: &GenericCoinTypeStorage<Ty0>, Arg1: TypeName): bool {
B0:
0MoveLoc[0](Arg0: &GenericCoinTypeStorage<Ty0>)
1ImmBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
2MoveLoc[1](Arg1: TypeName)
3Call wit_table::contains<GenericTable, TypeName, Ty0>(&WitTable<GenericTable, TypeName, Ty0>, TypeName): bool
4Ret
}
public(friend) is_empty<Ty0: store>(Arg0: &GenericCoinTypeStorage<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &GenericCoinTypeStorage<Ty0>)
1ImmBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
2Call wit_table::is_empty<GenericTable, TypeName, Ty0>(&WitTable<GenericTable, TypeName, Ty0>): bool
3Ret
}
public(friend) keys<Ty0: store>(Arg0: &GenericCoinTypeStorage<Ty0>): vector<TypeName> {
B0:
0MoveLoc[0](Arg0: &GenericCoinTypeStorage<Ty0>)
1ImmBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
2Call wit_table::keys<GenericTable, TypeName, Ty0>(&WitTable<GenericTable, TypeName, Ty0>): vector<TypeName>
3Ret
}
public(friend) load<Ty0: store, Ty1>(Arg0: &GenericCoinTypeStorage<Ty0>): &Ty0 {
L1: loc0: TypeName
B0:
0Call type_name::with_defining_ids<Ty1>(): TypeName
1StLoc[1](loc0: TypeName)
2MoveLoc[0](Arg0: &GenericCoinTypeStorage<Ty0>)
3ImmBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
4MoveLoc[1](loc0: TypeName)
5Call wit_table::borrow<GenericTable, TypeName, Ty0>(&WitTable<GenericTable, TypeName, Ty0>, TypeName): &Ty0
6Ret
}
public(friend) load_by_type<Ty0: store>(Arg0: &GenericCoinTypeStorage<Ty0>, Arg1: TypeName): &Ty0 {
B0:
0MoveLoc[0](Arg0: &GenericCoinTypeStorage<Ty0>)
1ImmBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
2MoveLoc[1](Arg1: TypeName)
3Call wit_table::borrow<GenericTable, TypeName, Ty0>(&WitTable<GenericTable, TypeName, Ty0>, TypeName): &Ty0
4Ret
}
public(friend) store<Ty0: store, Ty1>(Arg0: &mut GenericCoinTypeStorage<Ty0>, Arg1: Ty0) {
L2: loc0: TypeName
B0:
0Call type_name::with_defining_ids<Ty1>(): TypeName
1StLoc[2](loc0: TypeName)
2LdFalse
3Pack[1](GenericTable)
4MoveLoc[0](Arg0: &mut GenericCoinTypeStorage<Ty0>)
5MutBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
6MoveLoc[2](loc0: TypeName)
7MoveLoc[1](Arg1: Ty0)
8Call wit_table::add<GenericTable, TypeName, Ty0>(GenericTable, &mut WitTable<GenericTable, TypeName, Ty0>, TypeName, Ty0)
9Ret
}
public(friend) remove<Ty0: store, Ty1>(Arg0: &mut GenericCoinTypeStorage<Ty0>): Ty0 {
L1: loc0: TypeName
B0:
0Call type_name::with_defining_ids<Ty1>(): TypeName
1StLoc[1](loc0: TypeName)
2LdFalse
3Pack[1](GenericTable)
4MoveLoc[0](Arg0: &mut GenericCoinTypeStorage<Ty0>)
5MutBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
6MoveLoc[1](loc0: TypeName)
7Call wit_table::remove<GenericTable, TypeName, Ty0>(GenericTable, &mut WitTable<GenericTable, TypeName, Ty0>, TypeName): Ty0
8Ret
}
public(friend) load_mut_by_type<Ty0: store>(Arg0: &mut GenericCoinTypeStorage<Ty0>, Arg1: TypeName): &mut Ty0 {
B0:
0LdFalse
1Pack[1](GenericTable)
2MoveLoc[0](Arg0: &mut GenericCoinTypeStorage<Ty0>)
3MutBorrowFieldGeneric[0](GenericCoinTypeStorage.table: WitTable<GenericTable, TypeName, Ty0>)
4MoveLoc[1](Arg1: TypeName)
5Call wit_table::borrow_mut<GenericTable, TypeName, Ty0>(GenericTable, &mut WitTable<GenericTable, TypeName, Ty0>, TypeName): &mut Ty0
6Ret
}
}