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

generic_store

Module0x45ba…fc70
Move path
0xfe1d…80bf::generic_store
Functions
100 public, 0 entry
Structs
2
generic_store

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
}
 
}