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

API

scard

Module0x93f6…7dfd
Move path
0x7fd8…1fec::scard
Functions
30 public, 0 entry
Structs
0
Friend modules
market
scard

Bytecode168 lines

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

// Move bytecode v7
module 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec.scard {
use 0000000000000000000000000000000000000000000000000000000000000001::u64;
use e7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::decimal;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::rate;
 
public(friend) calculate_card_rebate_rate(Arg0: &SudoCard): Rate {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u64
L4: loc3: u64
L5: loc4: u64
B0:
0CopyLoc[0](Arg0: &SudoCard)
1Call card::get_tier(&SudoCard): u8
2Call max_rebate_for_tier(u8): u64
3StLoc[4](loc3: u64)
4CopyLoc[4](loc3: u64)
5LdU64(0)
6Eq
7BrFalse(12)
B1:
8MoveLoc[0](Arg0: &SudoCard)
9Pop
10Call rate::zero(): Rate
11Ret
B2:
12CopyLoc[0](Arg0: &SudoCard)
13Call card::get_tier(&SudoCard): u8
14Call start_rebate_for_tier(u8): u64
15StLoc[5](loc4: u64)
16MoveLoc[0](Arg0: &SudoCard)
17Call card::get_level(&SudoCard): u16
18CastU64
19StLoc[2](loc1: u64)
20LdU64(25)
21StLoc[1](loc0: u64)
22CopyLoc[2](loc1: u64)
23MoveLoc[2](loc1: u64)
24Mul
25CopyLoc[1](loc0: u64)
26CopyLoc[1](loc0: u64)
27Mul
28Call u64::min(u64, u64): u64
29StLoc[3](loc2: u64)
30CopyLoc[5](loc4: u64)
31Call decimal::from_u64(u64): Decimal
32MoveLoc[4](loc3: u64)
33MoveLoc[5](loc4: u64)
34Sub
35MoveLoc[3](loc2: u64)
36Mul
37Call decimal::from_u64(u64): Decimal
38CopyLoc[1](loc0: u64)
39MoveLoc[1](loc0: u64)
40Mul
41Call decimal::div_by_u64(Decimal, u64): Decimal
42Call decimal::add(Decimal, Decimal): Decimal
43LdU64(100)
44Call decimal::div_by_u64(Decimal, u64): Decimal
45Call decimal::to_rate(Decimal): Rate
46Ret
}
 
public(friend) start_rebate_for_tier(Arg0: u8): u64 {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u64
B0:
0CopyLoc[0](Arg0: u8)
1LdConst[0](u8: 0)
2Eq
3BrFalse(7)
B1:
4LdConst[6](u64: 20)
5StLoc[3](loc2: u64)
6Branch(27)
B2:
7CopyLoc[0](Arg0: u8)
8LdConst[1](u8: 1)
9Eq
10BrFalse(14)
B3:
11LdConst[7](u64: 15)
12StLoc[2](loc1: u64)
13Branch(25)
B4:
14MoveLoc[0](Arg0: u8)
15LdConst[2](u8: 2)
16Eq
17BrFalse(21)
B5:
18LdConst[8](u64: 12)
19StLoc[1](loc0: u64)
20Branch(23)
B6:
21LdU64(0)
22StLoc[1](loc0: u64)
B7:
23MoveLoc[1](loc0: u64)
24StLoc[2](loc1: u64)
B8:
25MoveLoc[2](loc1: u64)
26StLoc[3](loc2: u64)
B9:
27MoveLoc[3](loc2: u64)
28Ret
}
 
public(friend) max_rebate_for_tier(Arg0: u8): u64 {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u64
B0:
0CopyLoc[0](Arg0: u8)
1LdConst[0](u8: 0)
2Eq
3BrFalse(7)
B1:
4LdConst[3](u64: 50)
5StLoc[3](loc2: u64)
6Branch(27)
B2:
7CopyLoc[0](Arg0: u8)
8LdConst[1](u8: 1)
9Eq
10BrFalse(14)
B3:
11LdConst[4](u64: 45)
12StLoc[2](loc1: u64)
13Branch(25)
B4:
14MoveLoc[0](Arg0: u8)
15LdConst[2](u8: 2)
16Eq
17BrFalse(21)
B5:
18LdConst[5](u64: 35)
19StLoc[1](loc0: u64)
20Branch(23)
B6:
21LdU64(0)
22StLoc[1](loc0: u64)
B7:
23MoveLoc[1](loc0: u64)
24StLoc[2](loc1: u64)
B8:
25MoveLoc[2](loc1: u64)
26StLoc[3](loc2: u64)
B9:
27MoveLoc[3](loc2: u64)
28Ret
}
 
Constants [
0 => u8: 0
1 => u8: 1
2 => u8: 2
3 => u64: 50
4 => u64: 45
5 => u64: 35
6 => u64: 20
7 => u64: 15
8 => u64: 12
]
}