Package
0x2b2c0ea997f5c6d132f614aff354fe13176863c1f160626ae6c9115c21c73a9e
- version
- 1
- digest
- 4XinuSBStd7RTjNMwV9vCPAEm4T4o4JPrTqrx2fQRoGv
- previous transaction
- Fet37Vkk3fFcRKFTW9tmYeqe8n1AYWtkqrgCAzi5iL3b
Modules (1)
att
// Move bytecode v6
module 2b2c0ea997f5c6d132f614aff354fe13176863c1f160626ae6c9115c21c73a9e.att {
use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
struct ATT has drop {
dummy_field: bool
}
init(Arg0: ATT, Arg1: &mut TxContext) {
L2: loc0: vector<u8>
L3: loc1: Option<Url>
L4: loc2: BCS
L5: loc3: u8
L6: loc4: vector<u8>
L7: loc5: u8
L8: loc6: Option<Url>
L9: loc7: vector<u8>
L10: loc8: CoinMetadata<ATT>
L11: loc9: vector<u8>
L12: loc10: address
L13: loc11: u64
L14: loc12: vector<u8>
L15: loc13: TreasuryCap<ATT>
B0:
0: LdConst[0](vector<u8>: 8f01..)
1: Call bcs::new(vector<u8>): BCS
2: StLoc[4](loc2: BCS)
3: MutBorrowLoc[4](loc2: BCS)
4: Call bcs::peel_u8(&mut BCS): u8
5: StLoc[5](loc3: u8)
6: MutBorrowLoc[4](loc2: BCS)
7: Call bcs::peel_vec_u8(&mut BCS): vector<u8>
8: StLoc[14](loc12: vector<u8>)
9: MutBorrowLoc[4](loc2: BCS)
10: Call bcs::peel_vec_u8(&mut BCS): vector<u8>
11: StLoc[11](loc9: vector<u8>)
12: MutBorrowLoc[4](loc2: BCS)
13: Call bcs::peel_vec_u8(&mut BCS): vector<u8>
14: StLoc[6](loc4: vector<u8>)
15: MutBorrowLoc[4](loc2: BCS)
16: Call bcs::peel_vec_u8(&mut BCS): vector<u8>
17: StLoc[9](loc7: vector<u8>)
18: MutBorrowLoc[4](loc2: BCS)
19: Call bcs::peel_u64(&mut BCS): u64
20: StLoc[13](loc11: u64)
21: MutBorrowLoc[4](loc2: BCS)
22: Call bcs::peel_u8(&mut BCS): u8
23: StLoc[7](loc5: u8)
24: MoveLoc[4](loc2: BCS)
25: Call bcs::into_remainder_bytes(BCS): vector<u8>
26: StLoc[2](loc0: vector<u8>)
27: ImmBorrowLoc[2](loc0: vector<u8>)
28: Call vector::is_empty<u8>(&vector<u8>): bool
29: BrFalse(31)
B1:
30: Branch(35)
B2:
31: MoveLoc[1](Arg1: &mut TxContext)
32: Pop
33: LdConst[4](u64: 0)
34: Abort
B3:
35: CopyLoc[7](loc5: u8)
36: LdConst[3](u8: 3)
37: BitAnd
38: CopyLoc[7](loc5: u8)
39: Eq
40: BrFalse(42)
B4:
41: Branch(46)
B5:
42: MoveLoc[1](Arg1: &mut TxContext)
43: Pop
44: LdConst[4](u64: 0)
45: Abort
B6:
46: ImmBorrowLoc[9](loc7: vector<u8>)
47: Call vector::is_empty<u8>(&vector<u8>): bool
48: BrFalse(52)
B7:
49: Call option::none<Url>(): Option<Url>
50: StLoc[3](loc1: Option<Url>)
51: Branch(56)
B8:
52: MoveLoc[9](loc7: vector<u8>)
53: Call url::new_unsafe_from_bytes(vector<u8>): Url
54: Call option::some<Url>(Url): Option<Url>
55: StLoc[3](loc1: Option<Url>)
B9:
56: MoveLoc[3](loc1: Option<Url>)
57: StLoc[8](loc6: Option<Url>)
58: MoveLoc[0](Arg0: ATT)
59: MoveLoc[5](loc3: u8)
60: MoveLoc[14](loc12: vector<u8>)
61: MoveLoc[11](loc9: vector<u8>)
62: MoveLoc[6](loc4: vector<u8>)
63: MoveLoc[8](loc6: Option<Url>)
64: CopyLoc[1](Arg1: &mut TxContext)
65: Call coin::create_currency<ATT>(ATT, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<ATT> * CoinMetadata<ATT>
66: StLoc[10](loc8: CoinMetadata<ATT>)
67: StLoc[15](loc13: TreasuryCap<ATT>)
68: CopyLoc[1](Arg1: &mut TxContext)
69: FreezeRef
70: Call tx_context::sender(&TxContext): address
71: StLoc[12](loc10: address)
72: CopyLoc[13](loc11: u64)
73: LdU64(0)
74: Gt
75: BrFalse(82)
B10:
76: MutBorrowLoc[15](loc13: TreasuryCap<ATT>)
77: MoveLoc[13](loc11: u64)
78: CopyLoc[12](loc10: address)
79: MoveLoc[1](Arg1: &mut TxContext)
80: Call coin::mint_and_transfer<ATT>(&mut TreasuryCap<ATT>, u64, address, &mut TxContext)
81: Branch(84)
B11:
82: MoveLoc[1](Arg1: &mut TxContext)
83: Pop
B12:
84: CopyLoc[7](loc5: u8)
85: LdConst[2](u8: 2)
86: BitAnd
87: LdU8(0)
88: Neq
89: BrFalse(94)
B13:
90: MoveLoc[10](loc8: CoinMetadata<ATT>)
91: CopyLoc[12](loc10: address)
92: Call transfer::public_transfer<CoinMetadata<ATT>>(CoinMetadata<ATT>, address)
93: Branch(96)
B14:
94: MoveLoc[10](loc8: CoinMetadata<ATT>)
95: Call transfer::public_freeze_object<CoinMetadata<ATT>>(CoinMetadata<ATT>)
B15:
96: MoveLoc[7](loc5: u8)
97: LdConst[1](u8: 1)
98: BitAnd
99: LdU8(0)
100: Neq
101: BrFalse(106)
B16:
102: MoveLoc[15](loc13: TreasuryCap<ATT>)
103: MoveLoc[12](loc10: address)
104: Call transfer::public_transfer<TreasuryCap<ATT>>(TreasuryCap<ATT>, address)
105: Branch(108)
B17:
106: MoveLoc[15](loc13: TreasuryCap<ATT>)
107: Call transfer::public_freeze_object<TreasuryCap<ATT>>(TreasuryCap<ATT>)
B18:
108: Ret
}
Constants [
0 => vector<u8>: 8f0102034154541041697264726f7054657374546f6b656e006e68747470733a2f2f636f666665652d72616e646f6d2d636172702d3538382e6d7970696e6174612e636c6f75642f697066732f6261666b726569636178617071746d61786575756774647733786b776f70767a6d6b79626f6375746a377072616e6576336a65616f68773664616900a493d60000000000
1 => u8: 1
2 => u8: 2
3 => u8: 3
4 => u64: 0
]
}
SafeCoin