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

API

storage_resource

Module0xfa65…814e
Move path
0xfdc8…ea77::storage_resource
Functions
119 public, 0 entry
Structs
1
storage_resource

Bytecode333 lines

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

// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.storage_resource {
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct Storage has store, key {
id: UID,
start_epoch: u32,
end_epoch: u32,
storage_size: u64
}
 
public start_epoch(Arg0: &Storage): u32 {
B0:
0MoveLoc[0](Arg0: &Storage)
1ImmBorrowField[0](Storage.start_epoch: u32)
2ReadRef
3Ret
}
 
public end_epoch(Arg0: &Storage): u32 {
B0:
0MoveLoc[0](Arg0: &Storage)
1ImmBorrowField[1](Storage.end_epoch: u32)
2ReadRef
3Ret
}
 
public size(Arg0: &Storage): u64 {
B0:
0MoveLoc[0](Arg0: &Storage)
1ImmBorrowField[2](Storage.storage_size: u64)
2ReadRef
3Ret
}
 
public(friend) create_storage(Arg0: u32, Arg1: u32, Arg2: u64, Arg3: &mut TxContext): Storage {
B0:
0CopyLoc[0](Arg0: u32)
1CopyLoc[1](Arg1: u32)
2Lt
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[3](Arg3: &mut TxContext)
6Pop
7LdConst[3](u64: 3)
8Abort
B3:
9MoveLoc[3](Arg3: &mut TxContext)
10Call object::new(&mut TxContext): UID
11MoveLoc[0](Arg0: u32)
12MoveLoc[1](Arg1: u32)
13MoveLoc[2](Arg2: u64)
14Pack[0](Storage)
15Ret
}
 
public(friend) extend_end_epoch(Arg0: &mut Storage, Arg1: u32) {
B0:
0CopyLoc[0](Arg0: &mut Storage)
1ImmBorrowField[1](Storage.end_epoch: u32)
2ReadRef
3MoveLoc[1](Arg1: u32)
4Add
5MoveLoc[0](Arg0: &mut Storage)
6MutBorrowField[1](Storage.end_epoch: u32)
7WriteRef
8Ret
}
 
public(friend) increase_size(Arg0: &mut Storage, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &mut Storage)
1ImmBorrowField[2](Storage.storage_size: u64)
2ReadRef
3MoveLoc[1](Arg1: u64)
4Add
5MoveLoc[0](Arg0: &mut Storage)
6MutBorrowField[2](Storage.storage_size: u64)
7WriteRef
8Ret
}
 
public split_by_epoch(Arg0: &mut Storage, Arg1: u32, Arg2: &mut TxContext): Storage {
L3: loc0: bool
L4: loc1: u32
B0:
0CopyLoc[1](Arg1: u32)
1CopyLoc[0](Arg0: &mut Storage)
2ImmBorrowField[0](Storage.start_epoch: u32)
3ReadRef
4Gt
5BrFalse(13)
B1:
6CopyLoc[1](Arg1: u32)
7CopyLoc[0](Arg0: &mut Storage)
8ImmBorrowField[1](Storage.end_epoch: u32)
9ReadRef
10Lt
11StLoc[3](loc0: bool)
12Branch(15)
B2:
13LdFalse
14StLoc[3](loc0: bool)
B3:
15MoveLoc[3](loc0: bool)
16BrFalse(18)
B4:
17Branch(24)
B5:
18MoveLoc[0](Arg0: &mut Storage)
19Pop
20MoveLoc[2](Arg2: &mut TxContext)
21Pop
22LdConst[0](u64: 0)
23Abort
B6:
24CopyLoc[0](Arg0: &mut Storage)
25ImmBorrowField[1](Storage.end_epoch: u32)
26ReadRef
27StLoc[4](loc1: u32)
28CopyLoc[1](Arg1: u32)
29CopyLoc[0](Arg0: &mut Storage)
30MutBorrowField[1](Storage.end_epoch: u32)
31WriteRef
32MoveLoc[2](Arg2: &mut TxContext)
33Call object::new(&mut TxContext): UID
34MoveLoc[1](Arg1: u32)
35MoveLoc[4](loc1: u32)
36MoveLoc[0](Arg0: &mut Storage)
37ImmBorrowField[2](Storage.storage_size: u64)
38ReadRef
39Pack[0](Storage)
40Ret
}
 
public split_by_size(Arg0: &mut Storage, Arg1: u64, Arg2: &mut TxContext): Storage {
L3: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut Storage)
1ImmBorrowField[2](Storage.storage_size: u64)
2ReadRef
3CopyLoc[1](Arg1: u64)
4Ge
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[0](Arg0: &mut Storage)
8Pop
9MoveLoc[2](Arg2: &mut TxContext)
10Pop
11LdConst[2](u64: 2)
12Abort
B3:
13CopyLoc[0](Arg0: &mut Storage)
14ImmBorrowField[2](Storage.storage_size: u64)
15ReadRef
16CopyLoc[1](Arg1: u64)
17Sub
18StLoc[3](loc0: u64)
19MoveLoc[1](Arg1: u64)
20CopyLoc[0](Arg0: &mut Storage)
21MutBorrowField[2](Storage.storage_size: u64)
22WriteRef
23MoveLoc[2](Arg2: &mut TxContext)
24Call object::new(&mut TxContext): UID
25CopyLoc[0](Arg0: &mut Storage)
26ImmBorrowField[0](Storage.start_epoch: u32)
27ReadRef
28MoveLoc[0](Arg0: &mut Storage)
29ImmBorrowField[1](Storage.end_epoch: u32)
30ReadRef
31MoveLoc[3](loc0: u64)
32Pack[0](Storage)
33Ret
}
 
public fuse_periods(Arg0: &mut Storage, Arg1: Storage) {
L2: loc0: u32
L3: loc1: u64
L4: loc2: u32
B0:
0MoveLoc[1](Arg1: Storage)
1Unpack[0](Storage)
2StLoc[3](loc1: u64)
3StLoc[2](loc0: u32)
4StLoc[4](loc2: u32)
5Call object::delete(UID)
6CopyLoc[0](Arg0: &mut Storage)
7ImmBorrowField[2](Storage.storage_size: u64)
8ReadRef
9MoveLoc[3](loc1: u64)
10Eq
11BrFalse(13)
B1:
12Branch(17)
B2:
13MoveLoc[0](Arg0: &mut Storage)
14Pop
15LdConst[2](u64: 2)
16Abort
B3:
17CopyLoc[0](Arg0: &mut Storage)
18ImmBorrowField[1](Storage.end_epoch: u32)
19ReadRef
20CopyLoc[4](loc2: u32)
21Eq
22BrFalse(28)
B4:
23MoveLoc[2](loc0: u32)
24MoveLoc[0](Arg0: &mut Storage)
25MutBorrowField[1](Storage.end_epoch: u32)
26WriteRef
27Branch(43)
B5:
28CopyLoc[0](Arg0: &mut Storage)
29ImmBorrowField[0](Storage.start_epoch: u32)
30ReadRef
31MoveLoc[2](loc0: u32)
32Eq
33BrFalse(35)
B6:
34Branch(39)
B7:
35MoveLoc[0](Arg0: &mut Storage)
36Pop
37LdConst[1](u64: 1)
38Abort
B8:
39MoveLoc[4](loc2: u32)
40MoveLoc[0](Arg0: &mut Storage)
41MutBorrowField[0](Storage.start_epoch: u32)
42WriteRef
B9:
43Ret
}
 
public fuse_amount(Arg0: &mut Storage, Arg1: Storage) {
L2: loc0: bool
L3: loc1: u32
L4: loc2: u64
L5: loc3: u32
B0:
0MoveLoc[1](Arg1: Storage)
1Unpack[0](Storage)
2StLoc[4](loc2: u64)
3StLoc[3](loc1: u32)
4StLoc[5](loc3: u32)
5Call object::delete(UID)
6CopyLoc[0](Arg0: &mut Storage)
7ImmBorrowField[0](Storage.start_epoch: u32)
8ReadRef
9MoveLoc[5](loc3: u32)
10Eq
11BrFalse(19)
B1:
12CopyLoc[0](Arg0: &mut Storage)
13ImmBorrowField[1](Storage.end_epoch: u32)
14ReadRef
15MoveLoc[3](loc1: u32)
16Eq
17StLoc[2](loc0: bool)
18Branch(21)
B2:
19LdFalse
20StLoc[2](loc0: bool)
B3:
21MoveLoc[2](loc0: bool)
22BrFalse(24)
B4:
23Branch(28)
B5:
24MoveLoc[0](Arg0: &mut Storage)
25Pop
26LdConst[1](u64: 1)
27Abort
B6:
28CopyLoc[0](Arg0: &mut Storage)
29ImmBorrowField[2](Storage.storage_size: u64)
30ReadRef
31MoveLoc[4](loc2: u64)
32Add
33MoveLoc[0](Arg0: &mut Storage)
34MutBorrowField[2](Storage.storage_size: u64)
35WriteRef
36Ret
}
 
public fuse(Arg0: &mut Storage, Arg1: Storage) {
B0:
0CopyLoc[0](Arg0: &mut Storage)
1ImmBorrowField[0](Storage.start_epoch: u32)
2ReadRef
3ImmBorrowLoc[1](Arg1: Storage)
4ImmBorrowField[0](Storage.start_epoch: u32)
5ReadRef
6Eq
7BrFalse(12)
B1:
8MoveLoc[0](Arg0: &mut Storage)
9MoveLoc[1](Arg1: Storage)
10Call fuse_amount(&mut Storage, Storage)
11Branch(15)
B2:
12MoveLoc[0](Arg0: &mut Storage)
13MoveLoc[1](Arg1: Storage)
14Call fuse_periods(&mut Storage, Storage)
B3:
15Ret
}
 
public destroy(Arg0: Storage) {
B0:
0MoveLoc[0](Arg0: Storage)
1Unpack[0](Storage)
2Pop
3Pop
4Pop
5Call object::delete(UID)
6Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
]
}