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

Move path
0xcd86…fefa::vault_utils
Functions
1212 public, 0 entry
Structs
0
Friend modules
None
vault_utils

Bytecode197 lines

The on-chain disassembly. Offsets are instruction numbers within each function.

// Move bytecode v7
module cd86f77503a755c48fe6c87e1b8e9a137ec0c1bf37aac8878b6083262b27fefa.vault_utils {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000001::u256;
use 0000000000000000000000000000000000000000000000000000000000000001::u8;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
 
public parse_key<Ty0>(Arg0: u8): String {
L1: loc0: String
B0:
0Call type_name::get<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call string::from_ascii(String): String
3StLoc[1](loc0: String)
4MutBorrowLoc[1](loc0: String)
5MoveLoc[0](Arg0: u8)
6Call u8::to_string(u8): String
7Call string::append(&mut String, String)
8MoveLoc[1](loc0: String)
9Call string::to_ascii(String): String
10Ret
}
 
public mul_d(Arg0: u256, Arg1: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1MoveLoc[1](Arg1: u256)
2Mul
3LdConst[0](u256: 1000..)
4Div
5Ret
}
 
public div_d(Arg0: u256, Arg1: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdConst[0](u256: 1000..)
2Mul
3MoveLoc[1](Arg1: u256)
4Div
5Ret
}
 
public decimals(): u256 {
B0:
0LdConst[0](u256: 1000..)
1Ret
}
 
public to_decimals(Arg0: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdConst[0](u256: 1000..)
2Mul
3Ret
}
 
public to_oracle_price_decimals(Arg0: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdConst[1](u256: 1000..)
2Mul
3Ret
}
 
public from_oracle_price_decimals(Arg0: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdConst[1](u256: 1000..)
2Div
3Ret
}
 
public from_decimals(Arg0: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdConst[0](u256: 1000..)
2Div
3Ret
}
 
public clone_vecmap_table<Ty0: copy + drop + store, Ty1: copy + store>(Arg0: &VecMap<Ty0, Ty1>, Arg1: &mut TxContext): Table<Ty0, Ty1> {
L2: loc0: u64
L3: loc1: &Ty0
L4: loc2: vector<Ty0>
L5: loc3: Table<Ty0, Ty1>
L6: loc4: Ty1
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call table::new<Ty0, Ty1>(&mut TxContext): Table<Ty0, Ty1>
2StLoc[5](loc3: Table<Ty0, Ty1>)
3CopyLoc[0](Arg0: &VecMap<Ty0, Ty1>)
4Call vec_map::keys<Ty0, Ty1>(&VecMap<Ty0, Ty1>): vector<Ty0>
5StLoc[4](loc2: vector<Ty0>)
6ImmBorrowLoc[4](loc2: vector<Ty0>)
7VecLen(9)
8StLoc[2](loc0: u64)
B1:
9CopyLoc[2](loc0: u64)
10LdU64(0)
11Gt
12BrFalse(35)
B2:
13Branch(14)
B3:
14ImmBorrowLoc[4](loc2: vector<Ty0>)
15CopyLoc[2](loc0: u64)
16LdU64(1)
17Sub
18VecImmBorrow(9)
19StLoc[3](loc1: &Ty0)
20CopyLoc[0](Arg0: &VecMap<Ty0, Ty1>)
21CopyLoc[3](loc1: &Ty0)
22Call vec_map::get<Ty0, Ty1>(&VecMap<Ty0, Ty1>, &Ty0): &Ty1
23ReadRef
24StLoc[6](loc4: Ty1)
25MutBorrowLoc[5](loc3: Table<Ty0, Ty1>)
26MoveLoc[3](loc1: &Ty0)
27ReadRef
28MoveLoc[6](loc4: Ty1)
29Call table::add<Ty0, Ty1>(&mut Table<Ty0, Ty1>, Ty0, Ty1)
30MoveLoc[2](loc0: u64)
31LdU64(1)
32Sub
33StLoc[2](loc0: u64)
34Branch(9)
B4:
35MoveLoc[0](Arg0: &VecMap<Ty0, Ty1>)
36Pop
37MoveLoc[5](loc3: Table<Ty0, Ty1>)
38Ret
}
 
public mul_with_oracle_price(Arg0: u256, Arg1: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1MoveLoc[1](Arg1: u256)
2Mul
3LdConst[1](u256: 1000..)
4Div
5Ret
}
 
public div_with_oracle_price(Arg0: u256, Arg1: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdConst[1](u256: 1000..)
2Mul
3MoveLoc[1](Arg1: u256)
4Div
5Ret
}
 
public to_oracle_decimal(Arg0: u256, Arg1: u64): u256 {
L2: loc0: u256
B0:
0CopyLoc[1](Arg1: u64)
1LdConst[2](u64: 18)
2Lt
3BrFalse(14)
B1:
4MoveLoc[0](Arg0: u256)
5LdU256(10)
6LdConst[2](u64: 18)
7MoveLoc[1](Arg1: u64)
8Sub
9CastU8
10Call u256::pow(u256, u8): u256
11Mul
12StLoc[2](loc0: u256)
13Branch(23)
B2:
14MoveLoc[0](Arg0: u256)
15LdU256(10)
16MoveLoc[1](Arg1: u64)
17LdConst[2](u64: 18)
18Sub
19CastU8
20Call u256::pow(u256, u8): u256
21Div
22StLoc[2](loc0: u256)
B3:
23MoveLoc[2](loc0: u256)
24Ret
}
 
Constants [
0 => u256: 1000000000
1 => u256: 1000000000000000000
2 => u64: 18
]
}