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

API

auth

Module0xfa65…814e
Move path
0xfdc8…ea77::auth
Functions
54 public, 0 entry
Structs
2
auth

Bytecode161 lines

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

// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.auth {
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
enum Authenticated has drop {
Sender { pos0: address },
Object { pos0: ID }
}
 
enum Authorized has copy, drop, store {
Address { pos0: address },
ObjectID { pos0: ID }
}
 
public authenticate_sender(Arg0: &TxContext): Authenticated {
B0:
0MoveLoc[0](Arg0: &TxContext)
1Call tx_context::sender(&TxContext): address
2PackVariant(VariantHandleIndex(0))
3Ret
}
 
public authenticate_with_object<Ty0: key>(Arg0: &Ty0): Authenticated {
B0:
0MoveLoc[0](Arg0: &Ty0)
1Call object::id<Ty0>(&Ty0): ID
2PackVariant(VariantHandleIndex(1))
3Ret
}
 
public authorized_address(Arg0: address): Authorized {
B0:
0MoveLoc[0](Arg0: address)
1PackVariant(VariantHandleIndex(2))
2Ret
}
 
public authorized_object(Arg0: ID): Authorized {
B0:
0MoveLoc[0](Arg0: ID)
1PackVariant(VariantHandleIndex(3))
2Ret
}
 
public(friend) matches(Arg0: &Authenticated, Arg1: &Authorized): bool {
L2: loc0: bool
L3: loc1: bool
L4: loc2: bool
L5: loc3: &Authorized
L6: loc4: &Authenticated
L7: loc5: &Authorized
L8: loc6: &Authenticated
L9: loc7: &Authorized
L10: loc8: &Authorized
L11: loc9: &address
L12: loc10: &ID
L13: loc11: &ID
L14: loc12: &address
B0:
0MoveLoc[0](Arg0: &Authenticated)
1StLoc[8](loc6: &Authenticated)
2CopyLoc[8](loc6: &Authenticated)
3StLoc[6](loc4: &Authenticated)
4CopyLoc[6](loc4: &Authenticated)
5VariantSwitch(VariantJumpTableIndex(0))
B1:
6MoveLoc[6](loc4: &Authenticated)
7UnpackVariantImmRef(VariantHandleIndex(0))
8Pop
9MoveLoc[8](loc6: &Authenticated)
10UnpackVariantImmRef(VariantHandleIndex(0))
11StLoc[14](loc12: &address)
12MoveLoc[1](Arg1: &Authorized)
13StLoc[10](loc8: &Authorized)
14CopyLoc[10](loc8: &Authorized)
15StLoc[7](loc5: &Authorized)
16CopyLoc[7](loc5: &Authorized)
17VariantSwitch(VariantJumpTableIndex(1))
B2:
18MoveLoc[7](loc5: &Authorized)
19UnpackVariantImmRef(VariantHandleIndex(2))
20Pop
21MoveLoc[10](loc8: &Authorized)
22UnpackVariantImmRef(VariantHandleIndex(2))
23StLoc[11](loc9: &address)
24MoveLoc[14](loc12: &address)
25MoveLoc[11](loc9: &address)
26Eq
27StLoc[2](loc0: bool)
28Branch(37)
B3:
29MoveLoc[14](loc12: &address)
30Pop
31MoveLoc[10](loc8: &Authorized)
32Pop
33MoveLoc[7](loc5: &Authorized)
34Pop
35LdFalse
36StLoc[2](loc0: bool)
B4:
37MoveLoc[2](loc0: bool)
38StLoc[4](loc2: bool)
39Branch(73)
B5:
40MoveLoc[6](loc4: &Authenticated)
41UnpackVariantImmRef(VariantHandleIndex(1))
42Pop
43MoveLoc[8](loc6: &Authenticated)
44UnpackVariantImmRef(VariantHandleIndex(1))
45StLoc[12](loc10: &ID)
46MoveLoc[1](Arg1: &Authorized)
47StLoc[9](loc7: &Authorized)
48CopyLoc[9](loc7: &Authorized)
49StLoc[5](loc3: &Authorized)
50CopyLoc[5](loc3: &Authorized)
51VariantSwitch(VariantJumpTableIndex(2))
B6:
52MoveLoc[12](loc10: &ID)
53Pop
54MoveLoc[9](loc7: &Authorized)
55Pop
56MoveLoc[5](loc3: &Authorized)
57Pop
58LdFalse
59StLoc[3](loc1: bool)
60Branch(71)
B7:
61MoveLoc[5](loc3: &Authorized)
62UnpackVariantImmRef(VariantHandleIndex(3))
63Pop
64MoveLoc[9](loc7: &Authorized)
65UnpackVariantImmRef(VariantHandleIndex(3))
66StLoc[13](loc11: &ID)
67MoveLoc[12](loc10: &ID)
68MoveLoc[13](loc11: &ID)
69Eq
70StLoc[3](loc1: bool)
B8:
71MoveLoc[3](loc1: bool)
72StLoc[4](loc2: bool)
B9:
73MoveLoc[4](loc2: bool)
74Ret
Jump tables:
[0]: variant_switch Authenticated {
Variant0 => jump 6
Variant1 => jump 40
}
[1]: variant_switch Authorized {
Variant0 => jump 18
Variant1 => jump 29
}
[2]: variant_switch Authorized {
Variant0 => jump 52
Variant1 => jump 61
}
}
 
}