string_tools
Module0x8006…00bb
- Move path
- 0x91bf…9ca1::string_tools
- Functions
- 55 public, 0 entry
- Structs
- 0
- Friend modules
- None
string_tools
- fee4
- fee10000bps1
- fee100bps1
- fee3000bps1
- fee500bps1
- full_math_u1286
- full_math_u326
- full_math_u646
- i12831
- i3230
- i6428
- math_bit2
- math_liquidity7
- math_sqrt_price8
- math_swap3
- math_tick7
- math_u12817
- math_u2565
- math_u647
- pool87
- pool_factory21
- pool_fetcher1
- position_manager34
- position_nft5
- reward_manager8
- string_tools5
- swap_router13
Bytecode435 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1.string_tools {
use 0000000000000000000000000000000000000000000000000000000000000001::bcs;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::math;
public get_position_key(Arg0: address, Arg1: u32, Arg2: bool, Arg3: u32, Arg4: bool): String {
L5: loc0: bool
L6: loc1: String
L7: loc2: bool
L8: loc3: String
L9: loc4: String
L10: loc5: String
L11: loc6: String
L12: loc7: String
L13: loc8: String
B0:
0ImmBorrowLoc[0](Arg0: address)
1Call address_to_hexstring(&address): String
2StLoc[9](loc4: String)
3CopyLoc[1](Arg1: u32)
4CastU64
5Call u64_to_string(u64): String
6StLoc[11](loc6: String)
7MoveLoc[1](Arg1: u32)
8LdU32(0)
9Eq
10BrFalse(14)
B1:
11LdTrue
12StLoc[5](loc0: bool)
13Branch(16)
B2:
14MoveLoc[2](Arg2: bool)
15StLoc[5](loc0: bool)
B3:
16MoveLoc[5](loc0: bool)
17BrFalse(22)
B4:
18LdConst[1](vector<u8>: "-" ..)
19Call string::utf8(vector<u8>): String
20StLoc[6](loc1: String)
21Branch(25)
B5:
22LdConst[2](vector<u8>: "+" ..)
23Call string::utf8(vector<u8>): String
24StLoc[6](loc1: String)
B6:
25MoveLoc[6](loc1: String)
26StLoc[10](loc5: String)
27CopyLoc[3](Arg3: u32)
28CastU64
29Call u64_to_string(u64): String
30StLoc[13](loc8: String)
31MoveLoc[3](Arg3: u32)
32LdU32(0)
33Eq
34BrFalse(38)
B7:
35LdTrue
36StLoc[7](loc2: bool)
37Branch(40)
B8:
38MoveLoc[4](Arg4: bool)
39StLoc[7](loc2: bool)
B9:
40MoveLoc[7](loc2: bool)
41BrFalse(46)
B10:
42LdConst[1](vector<u8>: "-" ..)
43Call string::utf8(vector<u8>): String
44StLoc[8](loc3: String)
45Branch(49)
B11:
46LdConst[2](vector<u8>: "+" ..)
47Call string::utf8(vector<u8>): String
48StLoc[8](loc3: String)
B12:
49MoveLoc[8](loc3: String)
50StLoc[12](loc7: String)
51MutBorrowLoc[9](loc4: String)
52MoveLoc[10](loc5: String)
53Call string::append(&mut String, String)
54MutBorrowLoc[9](loc4: String)
55MoveLoc[11](loc6: String)
56Call string::append(&mut String, String)
57MutBorrowLoc[9](loc4: String)
58MoveLoc[12](loc7: String)
59Call string::append(&mut String, String)
60MutBorrowLoc[9](loc4: String)
61MoveLoc[13](loc8: String)
62Call string::append(&mut String, String)
63MoveLoc[9](loc4: String)
64Ret
}
public get_position_key_old(Arg0: address, Arg1: u32, Arg2: bool, Arg3: u32, Arg4: bool): String {
L5: loc0: String
L6: loc1: String
L7: loc2: String
L8: loc3: String
L9: loc4: String
L10: loc5: String
L11: loc6: String
B0:
0ImmBorrowLoc[0](Arg0: address)
1Call address_to_hexstring(&address): String
2StLoc[7](loc2: String)
3MoveLoc[1](Arg1: u32)
4CastU64
5Call u64_to_string(u64): String
6StLoc[9](loc4: String)
7MoveLoc[2](Arg2: bool)
8BrFalse(13)
B1:
9LdConst[1](vector<u8>: "-" ..)
10Call string::utf8(vector<u8>): String
11StLoc[5](loc0: String)
12Branch(16)
B2:
13LdConst[2](vector<u8>: "+" ..)
14Call string::utf8(vector<u8>): String
15StLoc[5](loc0: String)
B3:
16MoveLoc[5](loc0: String)
17StLoc[8](loc3: String)
18MoveLoc[3](Arg3: u32)
19CastU64
20Call u64_to_string(u64): String
21StLoc[11](loc6: String)
22MoveLoc[4](Arg4: bool)
23BrFalse(28)
B4:
24LdConst[1](vector<u8>: "-" ..)
25Call string::utf8(vector<u8>): String
26StLoc[6](loc1: String)
27Branch(31)
B5:
28LdConst[2](vector<u8>: "+" ..)
29Call string::utf8(vector<u8>): String
30StLoc[6](loc1: String)
B6:
31MoveLoc[6](loc1: String)
32StLoc[10](loc5: String)
33MutBorrowLoc[7](loc2: String)
34MoveLoc[8](loc3: String)
35Call string::append(&mut String, String)
36MutBorrowLoc[7](loc2: String)
37MoveLoc[9](loc4: String)
38Call string::append(&mut String, String)
39MutBorrowLoc[7](loc2: String)
40MoveLoc[10](loc5: String)
41Call string::append(&mut String, String)
42MutBorrowLoc[7](loc2: String)
43MoveLoc[11](loc6: String)
44Call string::append(&mut String, String)
45MoveLoc[7](loc2: String)
46Ret
}
public address_to_hexstring(Arg0: &address): String {
L1: loc0: vector<u8>
L2: loc1: vector<u8>
L3: loc2: u8
L4: loc3: vector<u8>
L5: loc4: &vector<u8>
L6: loc5: u64
L7: loc6: &mut vector<u8>
L8: loc7: bool
B0:
0MoveLoc[0](Arg0: &address)
1Call bcs::to_bytes<address>(&address): vector<u8>
2StLoc[4](loc3: vector<u8>)
3LdConst[3](vector<u8>: "012..)
4StLoc[1](loc0: vector<u8>)
5ImmBorrowLoc[1](loc0: vector<u8>)
6StLoc[5](loc4: &vector<u8>)
7LdConst[4](vector<u8>: "0x"..)
8StLoc[2](loc1: vector<u8>)
9MutBorrowLoc[2](loc1: vector<u8>)
10StLoc[7](loc6: &mut vector<u8>)
11LdU64(0)
12StLoc[6](loc5: u64)
13LdTrue
14StLoc[8](loc7: bool)
B1:
15CopyLoc[6](loc5: u64)
16ImmBorrowLoc[4](loc3: vector<u8>)
17VecLen(13)
18Lt
19BrFalse(58)
B2:
20Branch(21)
B3:
21ImmBorrowLoc[4](loc3: vector<u8>)
22CopyLoc[6](loc5: u64)
23VecImmBorrow(13)
24ReadRef
25StLoc[3](loc2: u8)
26MoveLoc[6](loc5: u64)
27LdU64(1)
28Add
29StLoc[6](loc5: u64)
30CopyLoc[3](loc2: u8)
31LdU8(0)
32Neq
33BrFalse(36)
B4:
34LdFalse
35StLoc[8](loc7: bool)
B5:
36CopyLoc[8](loc7: bool)
37BrFalse(39)
B6:
38Branch(15)
B7:
39CopyLoc[7](loc6: &mut vector<u8>)
40CopyLoc[5](loc4: &vector<u8>)
41CopyLoc[3](loc2: u8)
42LdU8(16)
43Div
44CastU64
45VecImmBorrow(13)
46ReadRef
47VecPushBack(13)
48CopyLoc[7](loc6: &mut vector<u8>)
49CopyLoc[5](loc4: &vector<u8>)
50MoveLoc[3](loc2: u8)
51LdU8(16)
52Mod
53CastU64
54VecImmBorrow(13)
55ReadRef
56VecPushBack(13)
57Branch(15)
B8:
58MoveLoc[5](loc4: &vector<u8>)
59Pop
60MoveLoc[7](loc6: &mut vector<u8>)
61ReadRef
62Call string::utf8(vector<u8>): String
63Ret
}
public u64_to_hexstring(Arg0: u64): String {
L1: loc0: vector<u8>
L2: loc1: vector<u8>
L3: loc2: u64
L4: loc3: u64
L5: loc4: &vector<u8>
L6: loc5: &mut vector<u8>
B0:
0CopyLoc[0](Arg0: u64)
1LdU64(16)
2Div
3StLoc[3](loc2: u64)
4MoveLoc[0](Arg0: u64)
5LdU64(16)
6Mod
7StLoc[4](loc3: u64)
8LdConst[3](vector<u8>: "012..)
9StLoc[1](loc0: vector<u8>)
10ImmBorrowLoc[1](loc0: vector<u8>)
11StLoc[5](loc4: &vector<u8>)
12LdConst[5](vector<u8>: "" /..)
13StLoc[2](loc1: vector<u8>)
14MutBorrowLoc[2](loc1: vector<u8>)
15StLoc[6](loc5: &mut vector<u8>)
16CopyLoc[6](loc5: &mut vector<u8>)
17CopyLoc[5](loc4: &vector<u8>)
18MoveLoc[3](loc2: u64)
19VecImmBorrow(13)
20ReadRef
21VecPushBack(13)
22CopyLoc[6](loc5: &mut vector<u8>)
23MoveLoc[5](loc4: &vector<u8>)
24MoveLoc[4](loc3: u64)
25VecImmBorrow(13)
26ReadRef
27VecPushBack(13)
28MoveLoc[6](loc5: &mut vector<u8>)
29ReadRef
30Call string::utf8(vector<u8>): String
31Ret
}
public bytes_to_hexstring(Arg0: &vector<u8>): String {
L1: loc0: String
L2: loc1: &u8
L3: loc2: u64
L4: loc3: &mut String
B0:
0LdConst[5](vector<u8>: "" /..)
1Call string::utf8(vector<u8>): String
2StLoc[1](loc0: String)
3MutBorrowLoc[1](loc0: String)
4StLoc[4](loc3: &mut String)
5LdU64(0)
6StLoc[3](loc2: u64)
B1:
7CopyLoc[3](loc2: u64)
8CopyLoc[0](Arg0: &vector<u8>)
9VecLen(13)
10Lt
11BrFalse(28)
B2:
12Branch(13)
B3:
13CopyLoc[0](Arg0: &vector<u8>)
14CopyLoc[3](loc2: u64)
15VecImmBorrow(13)
16StLoc[2](loc1: &u8)
17CopyLoc[4](loc3: &mut String)
18MoveLoc[2](loc1: &u8)
19ReadRef
20CastU64
21Call u64_to_hexstring(u64): String
22Call string::append(&mut String, String)
23MoveLoc[3](loc2: u64)
24LdU64(1)
25Add
26StLoc[3](loc2: u64)
27Branch(7)
B4:
28MoveLoc[0](Arg0: &vector<u8>)
29Pop
30MoveLoc[4](loc3: &mut String)
31ReadRef
32Ret
}
public u64_to_string(Arg0: u64): String {
L1: loc0: String
L2: loc1: bool
L3: loc2: u64
L4: loc3: u64
L5: loc4: u64
L6: loc5: &mut String
B0:
0CopyLoc[0](Arg0: u64)
1LdU64(0)
2Eq
3BrFalse(7)
B1:
4LdConst[6](vector<u8>: "0" ..)
5Call string::utf8(vector<u8>): String
6Ret
B2:
7LdU64(10)
8LdU8(19)
9Call math::pow(u64, u8): u64
10StLoc[3](loc2: u64)
11LdU64(20)
12StLoc[4](loc3: u64)
13LdConst[5](vector<u8>: "" /..)
14Call string::utf8(vector<u8>): String
15StLoc[1](loc0: String)
16MutBorrowLoc[1](loc0: String)
17StLoc[6](loc5: &mut String)
B3:
18CopyLoc[4](loc3: u64)
19LdU64(0)
20Gt
21BrFalse(67)
B4:
22Branch(23)
B5:
23CopyLoc[0](Arg0: u64)
24CopyLoc[3](loc2: u64)
25Div
26StLoc[5](loc4: u64)
27CopyLoc[5](loc4: u64)
28LdU64(0)
29Neq
30BrFalse(37)
B6:
31MoveLoc[0](Arg0: u64)
32CopyLoc[5](loc4: u64)
33CopyLoc[3](loc2: u64)
34Mul
35Sub
36StLoc[0](Arg0: u64)
B7:
37CopyLoc[6](loc5: &mut String)
38FreezeRef
39Call string::is_empty(&String): bool
40Not
41BrFalse(45)
B8:
42LdTrue
43StLoc[2](loc1: bool)
44Branch(49)
B9:
45CopyLoc[5](loc4: u64)
46LdU64(0)
47Neq
48StLoc[2](loc1: bool)
B10:
49MoveLoc[2](loc1: bool)
50BrFalse(58)
B11:
51CopyLoc[6](loc5: &mut String)
52MoveLoc[5](loc4: u64)
53LdU64(48)
54Add
55CastU8
56VecPack(13, 1)
57Call string::append_utf8(&mut String, vector<u8>)
B12:
58MoveLoc[3](loc2: u64)
59LdU64(10)
60Div
61StLoc[3](loc2: u64)
62MoveLoc[4](loc3: u64)
63LdU64(1)
64Sub
65StLoc[4](loc3: u64)
66Branch(18)
B13:
67MoveLoc[6](loc5: &mut String)
68ReadRef
69Ret
}
Constants [
0 => u64: 2000
1 => vector<u8>: "-" // interpreted as UTF8 string
2 => vector<u8>: "+" // interpreted as UTF8 string
3 => vector<u8>: "0123456789abcdef" // interpreted as UTF8 string
4 => vector<u8>: "0x" // interpreted as UTF8 string
5 => vector<u8>: "" // interpreted as UTF8 string
6 => vector<u8>: "0" // interpreted as UTF8 string
]
}