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

API

vpt

Module0xd47b…3db2
Move path
0x361d…7ffc::vpt
Functions
1010 public, 0 entry
Structs
1
Friend modules
None
vpt

Bytecode391 lines

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

// Move bytecode v6
module 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc.vpt {
 
struct ValuePerToken has copy, drop, store {
sum: u256,
amount: u256
}
 
public vpt(Arg0: u256, Arg1: u256): ValuePerToken {
L2: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdU256(0)
2Gt
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: u256)
5LdU256(0)
6Eq
7StLoc[2](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[2](loc0: bool)
B3:
11MoveLoc[2](loc0: bool)
12LdFalse
13Eq
14BrFalse(16)
B4:
15Branch(18)
B5:
16LdConst[1](u64: 18301)
17Abort
B6:
18MoveLoc[0](Arg0: u256)
19MoveLoc[1](Arg1: u256)
20Pack[0](ValuePerToken)
21Ret
}
 
public zero(): ValuePerToken {
B0:
0LdU256(0)
1LdU256(0)
2Call vpt(u256, u256): ValuePerToken
3Ret
}
 
public sum(Arg0: &ValuePerToken): u256 {
B0:
0MoveLoc[0](Arg0: &ValuePerToken)
1ImmBorrowField[0](ValuePerToken.sum: u256)
2ReadRef
3Ret
}
 
public amount(Arg0: &ValuePerToken): u256 {
B0:
0MoveLoc[0](Arg0: &ValuePerToken)
1ImmBorrowField[1](ValuePerToken.amount: u256)
2ReadRef
3Ret
}
 
public value(Arg0: &ValuePerToken): u256 {
L1: loc0: bool
L2: loc1: u256
B0:
0CopyLoc[0](Arg0: &ValuePerToken)
1ImmBorrowField[0](ValuePerToken.sum: u256)
2ReadRef
3LdU256(0)
4Eq
5BrFalse(13)
B1:
6CopyLoc[0](Arg0: &ValuePerToken)
7ImmBorrowField[1](ValuePerToken.amount: u256)
8ReadRef
9LdU256(0)
10Eq
11StLoc[1](loc0: bool)
12Branch(15)
B2:
13LdFalse
14StLoc[1](loc0: bool)
B3:
15MoveLoc[1](loc0: bool)
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &ValuePerToken)
18Pop
19LdU256(0)
20StLoc[2](loc1: u256)
21Branch(30)
B5:
22CopyLoc[0](Arg0: &ValuePerToken)
23ImmBorrowField[0](ValuePerToken.sum: u256)
24ReadRef
25MoveLoc[0](Arg0: &ValuePerToken)
26ImmBorrowField[1](ValuePerToken.amount: u256)
27ReadRef
28Div
29StLoc[2](loc1: u256)
B6:
30MoveLoc[2](loc1: u256)
31Ret
}
 
public add_sum(Arg0: &mut ValuePerToken, Arg1: u256) {
B0:
0CopyLoc[0](Arg0: &mut ValuePerToken)
1ImmBorrowField[1](ValuePerToken.amount: u256)
2ReadRef
3LdU256(0)
4Gt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut ValuePerToken)
8Pop
9LdConst[1](u64: 18301)
10Abort
B3:
11CopyLoc[0](Arg0: &mut ValuePerToken)
12ImmBorrowField[0](ValuePerToken.sum: u256)
13ReadRef
14MoveLoc[1](Arg1: u256)
15Add
16MoveLoc[0](Arg0: &mut ValuePerToken)
17MutBorrowField[0](ValuePerToken.sum: u256)
18WriteRef
19Ret
}
 
public dec_sum(Arg0: &mut ValuePerToken, Arg1: u256) {
B0:
0CopyLoc[0](Arg0: &mut ValuePerToken)
1ImmBorrowField[1](ValuePerToken.amount: u256)
2ReadRef
3LdU256(0)
4Gt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut ValuePerToken)
8Pop
9LdConst[1](u64: 18301)
10Abort
B3:
11CopyLoc[0](Arg0: &mut ValuePerToken)
12ImmBorrowField[0](ValuePerToken.sum: u256)
13ReadRef
14MoveLoc[1](Arg1: u256)
15Sub
16MoveLoc[0](Arg0: &mut ValuePerToken)
17MutBorrowField[0](ValuePerToken.sum: u256)
18WriteRef
19Ret
}
 
public add_amount(Arg0: &mut ValuePerToken, Arg1: u256) {
L2: loc0: u256
L3: loc1: u256
B0:
0CopyLoc[0](Arg0: &mut ValuePerToken)
1ImmBorrowField[1](ValuePerToken.amount: u256)
2ReadRef
3MoveLoc[1](Arg1: u256)
4Add
5StLoc[3](loc1: u256)
6CopyLoc[0](Arg0: &mut ValuePerToken)
7ImmBorrowField[1](ValuePerToken.amount: u256)
8ReadRef
9LdU256(0)
10Gt
11BrFalse(23)
B1:
12CopyLoc[0](Arg0: &mut ValuePerToken)
13ImmBorrowField[0](ValuePerToken.sum: u256)
14ReadRef
15CopyLoc[3](loc1: u256)
16Mul
17CopyLoc[0](Arg0: &mut ValuePerToken)
18ImmBorrowField[1](ValuePerToken.amount: u256)
19ReadRef
20Div
21StLoc[2](loc0: u256)
22Branch(25)
B2:
23LdU256(0)
24StLoc[2](loc0: u256)
B3:
25MoveLoc[2](loc0: u256)
26CopyLoc[0](Arg0: &mut ValuePerToken)
27MutBorrowField[0](ValuePerToken.sum: u256)
28WriteRef
29MoveLoc[3](loc1: u256)
30MoveLoc[0](Arg0: &mut ValuePerToken)
31MutBorrowField[1](ValuePerToken.amount: u256)
32WriteRef
33Ret
}
 
public dec_amount(Arg0: &mut ValuePerToken, Arg1: u256) {
L2: loc0: u256
L3: loc1: u256
B0:
0CopyLoc[0](Arg0: &mut ValuePerToken)
1ImmBorrowField[1](ValuePerToken.amount: u256)
2ReadRef
3MoveLoc[1](Arg1: u256)
4Sub
5StLoc[3](loc1: u256)
6CopyLoc[0](Arg0: &mut ValuePerToken)
7ImmBorrowField[1](ValuePerToken.amount: u256)
8ReadRef
9LdU256(0)
10Gt
11BrFalse(23)
B1:
12CopyLoc[0](Arg0: &mut ValuePerToken)
13ImmBorrowField[0](ValuePerToken.sum: u256)
14ReadRef
15CopyLoc[3](loc1: u256)
16Mul
17CopyLoc[0](Arg0: &mut ValuePerToken)
18ImmBorrowField[1](ValuePerToken.amount: u256)
19ReadRef
20Div
21StLoc[2](loc0: u256)
22Branch(25)
B2:
23LdU256(0)
24StLoc[2](loc0: u256)
B3:
25MoveLoc[2](loc0: u256)
26CopyLoc[0](Arg0: &mut ValuePerToken)
27MutBorrowField[0](ValuePerToken.sum: u256)
28WriteRef
29MoveLoc[3](loc1: u256)
30MoveLoc[0](Arg0: &mut ValuePerToken)
31MutBorrowField[1](ValuePerToken.amount: u256)
32WriteRef
33Ret
}
 
public diff(Arg0: &ValuePerToken, Arg1: &ValuePerToken, Arg2: u256): u256 {
L3: loc0: bool
L4: loc1: u256
L5: loc2: u256
L6: loc3: bool
L7: loc4: u256
L8: loc5: u256
L9: loc6: u256
L10: loc7: u256
L11: loc8: u256
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u256
L16: loc13: u256
B0:
0CopyLoc[0](Arg0: &ValuePerToken)
1ImmBorrowField[1](ValuePerToken.amount: u256)
2ReadRef
3LdU256(0)
4Eq
5BrFalse(13)
B1:
6CopyLoc[0](Arg0: &ValuePerToken)
7ImmBorrowField[0](ValuePerToken.sum: u256)
8ReadRef
9LdU256(0)
10Eq
11StLoc[3](loc0: bool)
12Branch(15)
B2:
13LdFalse
14StLoc[3](loc0: bool)
B3:
15MoveLoc[3](loc0: bool)
16BrFalse(24)
B4:
17MoveLoc[0](Arg0: &ValuePerToken)
18Pop
19LdU256(0)
20LdU256(1)
21StLoc[5](loc2: u256)
22StLoc[4](loc1: u256)
23Branch(32)
B5:
24CopyLoc[0](Arg0: &ValuePerToken)
25ImmBorrowField[0](ValuePerToken.sum: u256)
26ReadRef
27MoveLoc[0](Arg0: &ValuePerToken)
28ImmBorrowField[1](ValuePerToken.amount: u256)
29ReadRef
30StLoc[5](loc2: u256)
31StLoc[4](loc1: u256)
B6:
32MoveLoc[4](loc1: u256)
33MoveLoc[5](loc2: u256)
34StLoc[10](loc7: u256)
35StLoc[15](loc12: u256)
36CopyLoc[1](Arg1: &ValuePerToken)
37ImmBorrowField[1](ValuePerToken.amount: u256)
38ReadRef
39LdU256(0)
40Eq
41BrFalse(49)
B7:
42CopyLoc[1](Arg1: &ValuePerToken)
43ImmBorrowField[0](ValuePerToken.sum: u256)
44ReadRef
45LdU256(0)
46Eq
47StLoc[6](loc3: bool)
48Branch(51)
B8:
49LdFalse
50StLoc[6](loc3: bool)
B9:
51MoveLoc[6](loc3: bool)
52BrFalse(60)
B10:
53MoveLoc[1](Arg1: &ValuePerToken)
54Pop
55LdU256(0)
56LdU256(1)
57StLoc[8](loc5: u256)
58StLoc[7](loc4: u256)
59Branch(68)
B11:
60CopyLoc[1](Arg1: &ValuePerToken)
61ImmBorrowField[0](ValuePerToken.sum: u256)
62ReadRef
63MoveLoc[1](Arg1: &ValuePerToken)
64ImmBorrowField[1](ValuePerToken.amount: u256)
65ReadRef
66StLoc[8](loc5: u256)
67StLoc[7](loc4: u256)
B12:
68MoveLoc[7](loc4: u256)
69MoveLoc[8](loc5: u256)
70StLoc[11](loc8: u256)
71StLoc[16](loc13: u256)
72MoveLoc[15](loc12: u256)
73CopyLoc[11](loc8: u256)
74Mul
75StLoc[13](loc10: u256)
76MoveLoc[16](loc13: u256)
77CopyLoc[10](loc7: u256)
78Mul
79StLoc[14](loc11: u256)
80MoveLoc[10](loc7: u256)
81MoveLoc[11](loc8: u256)
82Mul
83StLoc[12](loc9: u256)
84CopyLoc[13](loc10: u256)
85CopyLoc[14](loc11: u256)
86Ge
87BrFalse(97)
B13:
88MoveLoc[13](loc10: u256)
89MoveLoc[14](loc11: u256)
90Sub
91MoveLoc[2](Arg2: u256)
92Mul
93MoveLoc[12](loc9: u256)
94Div
95StLoc[9](loc6: u256)
96Branch(99)
B14:
97LdU256(0)
98StLoc[9](loc6: u256)
B15:
99MoveLoc[9](loc6: u256)
100Ret
}
 
Constants [
0 => u64: 18400
1 => u64: 18301
2 => u256: 18446744073709551615
3 => u256: 340282366920938463463374607431768211455
]
}