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

API

pricing_config

Module0x5580…2003
Move path
0xd22b…08f0::pricing_config
Functions
77 public, 0 entry
Structs
3
Friend modules
None
pricing_config

Bytecode256 lines

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

// Move bytecode v7
module d22b24490e0bae52676651b4f56660a5ff8022a2576e0089f79b3c88d44e08f0.pricing_config {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
 
struct Range has copy, drop, store {
pos0: u64,
pos1: u64
}
 
struct PricingConfig has drop, store {
pricing: VecMap<Range, u64>
}
 
struct RenewalConfig has drop, store {
config: PricingConfig
}
 
public calculate_base_price(Arg0: &PricingConfig, Arg1: u64): u64 {
L2: loc0: u64
L3: loc1: Option<u64>
L4: loc2: u64
L5: loc3: u64
L6: loc4: Option<u64>
L7: loc5: vector<Range>
L8: loc6: Range
L9: loc7: u64
L10: loc8: &vector<Range>
B0:
0CopyLoc[0](Arg0: &PricingConfig)
1ImmBorrowField[0](PricingConfig.pricing: VecMap<Range, u64>)
2Call vec_map::keys<Range, u64>(&VecMap<Range, u64>): vector<Range>
3StLoc[7](loc5: vector<Range>)
4ImmBorrowLoc[7](loc5: vector<Range>)
5StLoc[10](loc8: &vector<Range>)
6CopyLoc[10](loc8: &vector<Range>)
7VecLen(10)
8StLoc[2](loc0: u64)
9LdU64(0)
10StLoc[4](loc2: u64)
11MoveLoc[2](loc0: u64)
12StLoc[9](loc7: u64)
B1:
13CopyLoc[4](loc2: u64)
14CopyLoc[9](loc7: u64)
15Lt
16BrFalse(36)
B2:
17CopyLoc[4](loc2: u64)
18StLoc[5](loc3: u64)
19CopyLoc[10](loc8: &vector<Range>)
20CopyLoc[5](loc3: u64)
21VecImmBorrow(10)
22CopyLoc[1](Arg1: u64)
23Call is_between_inclusive(&Range, u64): bool
24BrFalse(31)
B3:
25MoveLoc[10](loc8: &vector<Range>)
26Pop
27MoveLoc[5](loc3: u64)
28Call option::some<u64>(u64): Option<u64>
29StLoc[3](loc1: Option<u64>)
30Branch(40)
B4:
31MoveLoc[4](loc2: u64)
32LdU64(1)
33Add
34StLoc[4](loc2: u64)
35Branch(13)
B5:
36MoveLoc[10](loc8: &vector<Range>)
37Pop
38Call option::none<u64>(): Option<u64>
39StLoc[3](loc1: Option<u64>)
B6:
40MoveLoc[3](loc1: Option<u64>)
41StLoc[6](loc4: Option<u64>)
42ImmBorrowLoc[6](loc4: Option<u64>)
43Call option::is_some<u64>(&Option<u64>): bool
44BrFalse(46)
B7:
45Branch(50)
B8:
46MoveLoc[0](Arg0: &PricingConfig)
47Pop
48LdConst[3](u64: 4)
49Abort
B9:
50ImmBorrowLoc[7](loc5: vector<Range>)
51MutBorrowLoc[6](loc4: Option<u64>)
52Call option::extract<u64>(&mut Option<u64>): u64
53VecImmBorrow(10)
54ReadRef
55StLoc[8](loc6: Range)
56MoveLoc[0](Arg0: &PricingConfig)
57ImmBorrowField[0](PricingConfig.pricing: VecMap<Range, u64>)
58ImmBorrowLoc[8](loc6: Range)
59Call vec_map::get<Range, u64>(&VecMap<Range, u64>, &Range): &u64
60ReadRef
61Ret
}
 
public new(Arg0: vector<Range>, Arg1: vector<u64>): PricingConfig {
L2: loc0: u64
B0:
0ImmBorrowLoc[0](Arg0: vector<Range>)
1VecLen(10)
2ImmBorrowLoc[1](Arg1: vector<u64>)
3VecLen(1)
4Eq
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[2](u64: 3)
8Abort
B3:
9LdU64(1)
10StLoc[2](loc0: u64)
B4:
11CopyLoc[2](loc0: u64)
12ImmBorrowLoc[0](Arg0: vector<Range>)
13VecLen(10)
14Lt
15BrFalse(38)
B5:
16ImmBorrowLoc[0](Arg0: vector<Range>)
17CopyLoc[2](loc0: u64)
18LdU64(1)
19Sub
20VecImmBorrow(10)
21ImmBorrowField[1](Range.pos1: u64)
22ReadRef
23ImmBorrowLoc[0](Arg0: vector<Range>)
24CopyLoc[2](loc0: u64)
25VecImmBorrow(10)
26ImmBorrowField[2](Range.pos0: u64)
27ReadRef
28Lt
29BrFalse(31)
B6:
30Branch(33)
B7:
31LdConst[1](u64: 2)
32Abort
B8:
33MoveLoc[2](loc0: u64)
34LdU64(1)
35Add
36StLoc[2](loc0: u64)
37Branch(11)
B9:
38MoveLoc[0](Arg0: vector<Range>)
39MoveLoc[1](Arg1: vector<u64>)
40Call vec_map::from_keys_values<Range, u64>(vector<Range>, vector<u64>): VecMap<Range, u64>
41Pack[1](PricingConfig)
42Ret
}
 
public is_between_inclusive(Arg0: &Range, Arg1: u64): bool {
L2: loc0: bool
B0:
0CopyLoc[1](Arg1: u64)
1CopyLoc[0](Arg0: &Range)
2ImmBorrowField[2](Range.pos0: u64)
3ReadRef
4Ge
5BrFalse(13)
B1:
6MoveLoc[1](Arg1: u64)
7MoveLoc[0](Arg0: &Range)
8ImmBorrowField[1](Range.pos1: u64)
9ReadRef
10Le
11StLoc[2](loc0: bool)
12Branch(17)
B2:
13MoveLoc[0](Arg0: &Range)
14Pop
15LdFalse
16StLoc[2](loc0: bool)
B3:
17MoveLoc[2](loc0: bool)
18Ret
}
 
public pricing(Arg0: &PricingConfig): &VecMap<Range, u64> {
B0:
0MoveLoc[0](Arg0: &PricingConfig)
1ImmBorrowField[0](PricingConfig.pricing: VecMap<Range, u64>)
2Ret
}
 
public new_renewal_config(Arg0: PricingConfig): RenewalConfig {
B0:
0MoveLoc[0](Arg0: PricingConfig)
1Pack[2](RenewalConfig)
2Ret
}
 
public new_range(Arg0: vector<u64>): Range {
B0:
0ImmBorrowLoc[0](Arg0: vector<u64>)
1VecLen(1)
2LdU64(2)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[0](u64: 1)
7Abort
B3:
8ImmBorrowLoc[0](Arg0: vector<u64>)
9LdU64(0)
10VecImmBorrow(1)
11ReadRef
12ImmBorrowLoc[0](Arg0: vector<u64>)
13LdU64(1)
14VecImmBorrow(1)
15ReadRef
16Le
17BrFalse(19)
B4:
18Branch(21)
B5:
19LdConst[1](u64: 2)
20Abort
B6:
21ImmBorrowLoc[0](Arg0: vector<u64>)
22LdU64(0)
23VecImmBorrow(1)
24ReadRef
25ImmBorrowLoc[0](Arg0: vector<u64>)
26LdU64(1)
27VecImmBorrow(1)
28ReadRef
29Pack[0](Range)
30Ret
}
 
public config(Arg0: &RenewalConfig): &PricingConfig {
B0:
0MoveLoc[0](Arg0: &RenewalConfig)
1ImmBorrowField[3](RenewalConfig.config: PricingConfig)
2Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
2 => u64: 3
3 => u64: 4
]
}