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

API

utils_supply

Module0x9911…a9ec
Move path
0x859e…b7cb::utils_supply
Functions
1111 public, 0 entry
Structs
1
Friend modules
None
utils_supply

Bytecode183 lines

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

// Move bytecode v6
module 859eb18bd5b5e8cc32deb6dfb1c39941008ab3c6e27f0b8ce2364be7102bb7cb.utils_supply {
 
struct Supply has drop, store {
max: u64,
current: u64
}
 
public new(Arg0: u64): Supply {
B0:
0MoveLoc[0](Arg0: u64)
1LdU64(0)
2Pack[0](Supply)
3Ret
}
 
public get_max(Arg0: &Supply): u64 {
B0:
0MoveLoc[0](Arg0: &Supply)
1ImmBorrowField[0](Supply.max: u64)
2ReadRef
3Ret
}
 
public get_current(Arg0: &Supply): u64 {
B0:
0MoveLoc[0](Arg0: &Supply)
1ImmBorrowField[1](Supply.current: u64)
2ReadRef
3Ret
}
 
public get_remaining(Arg0: &Supply): u64 {
B0:
0CopyLoc[0](Arg0: &Supply)
1ImmBorrowField[0](Supply.max: u64)
2ReadRef
3MoveLoc[0](Arg0: &Supply)
4ImmBorrowField[1](Supply.current: u64)
5ReadRef
6Sub
7Ret
}
 
public increase_maximum(Arg0: &mut Supply, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &mut Supply)
1ImmBorrowField[0](Supply.max: u64)
2ReadRef
3MoveLoc[1](Arg1: u64)
4Add
5MoveLoc[0](Arg0: &mut Supply)
6MutBorrowField[0](Supply.max: u64)
7WriteRef
8Ret
}
 
public decrease_maximum(Arg0: &mut Supply, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &mut Supply)
1ImmBorrowField[0](Supply.max: u64)
2ReadRef
3CopyLoc[1](Arg1: u64)
4Sub
5CopyLoc[0](Arg0: &mut Supply)
6ImmBorrowField[1](Supply.current: u64)
7ReadRef
8Gt
9BrFalse(11)
B1:
10Branch(15)
B2:
11MoveLoc[0](Arg0: &mut Supply)
12Pop
13LdConst[1](u64: 2)
14Abort
B3:
15CopyLoc[0](Arg0: &mut Supply)
16ImmBorrowField[0](Supply.max: u64)
17ReadRef
18MoveLoc[1](Arg1: u64)
19Sub
20MoveLoc[0](Arg0: &mut Supply)
21MutBorrowField[0](Supply.max: u64)
22WriteRef
23Ret
}
 
public increment(Arg0: &mut Supply, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &mut Supply)
1ImmBorrowField[1](Supply.current: u64)
2ReadRef
3CopyLoc[1](Arg1: u64)
4Add
5CopyLoc[0](Arg0: &mut Supply)
6ImmBorrowField[0](Supply.max: u64)
7ReadRef
8Le
9BrFalse(11)
B1:
10Branch(15)
B2:
11MoveLoc[0](Arg0: &mut Supply)
12Pop
13LdConst[0](u64: 1)
14Abort
B3:
15CopyLoc[0](Arg0: &mut Supply)
16ImmBorrowField[1](Supply.current: u64)
17ReadRef
18MoveLoc[1](Arg1: u64)
19Add
20MoveLoc[0](Arg0: &mut Supply)
21MutBorrowField[1](Supply.current: u64)
22WriteRef
23Ret
}
 
public decrement(Arg0: &mut Supply, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &mut Supply)
1ImmBorrowField[1](Supply.current: u64)
2ReadRef
3MoveLoc[1](Arg1: u64)
4Sub
5MoveLoc[0](Arg0: &mut Supply)
6MutBorrowField[1](Supply.current: u64)
7WriteRef
8Ret
}
 
public split(Arg0: &mut Supply, Arg1: u64): Supply {
B0:
0MoveLoc[0](Arg0: &mut Supply)
1CopyLoc[1](Arg1: u64)
2Call decrease_maximum(&mut Supply, u64)
3MoveLoc[1](Arg1: u64)
4Call new(u64): Supply
5Ret
}
 
public merge(Arg0: &mut Supply, Arg1: Supply) {
L2: loc0: u64
L3: loc1: u64
B0:
0MoveLoc[1](Arg1: Supply)
1Unpack[0](Supply)
2StLoc[2](loc0: u64)
3StLoc[3](loc1: u64)
4CopyLoc[0](Arg0: &mut Supply)
5MoveLoc[3](loc1: u64)
6Call increase_maximum(&mut Supply, u64)
7MoveLoc[0](Arg0: &mut Supply)
8MoveLoc[2](loc0: u64)
9Call increment(&mut Supply, u64)
10Ret
}
 
public assert_zero(Arg0: &Supply) {
B0:
0MoveLoc[0](Arg0: &Supply)
1ImmBorrowField[1](Supply.current: u64)
2ReadRef
3LdU64(0)
4Eq
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[2](u64: 3)
8Abort
B3:
9Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
2 => u64: 3
]
}