Package
0x71a265ee75128a494ab9443a8ec8f8fef5eaa11645b316dfa185243040009612
- version
- 1
- digest
- 12BSWqBoHZ1B7TqhtkE5Zx7n4AMPfYyw3XasukgVPoW1
- previous transaction
- 7t5eHyr9qALvrd3Q4SHPUnpeqZZsUd18iKvNWGZzq7id
Modules (1)
tsc
// Move bytecode v6
module 71a265ee75128a494ab9443a8ec8f8fef5eaa11645b316dfa185243040009612.tsc {
use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
struct TSC has drop {
dummy_field: bool
}
init(Arg0: TSC, 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<TSC>
L11: loc9: vector<u8>
L12: loc10: address
L13: loc11: u64
L14: loc12: vector<u8>
L15: loc13: TreasuryCap<TSC>
B0:
0: LdConst[0](vector<u8>: 8901..)
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: TSC)
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<TSC>(TSC, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<TSC> * CoinMetadata<TSC>
66: StLoc[10](loc8: CoinMetadata<TSC>)
67: StLoc[15](loc13: TreasuryCap<TSC>)
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<TSC>)
77: MoveLoc[13](loc11: u64)
78: CopyLoc[12](loc10: address)
79: MoveLoc[1](Arg1: &mut TxContext)
80: Call coin::mint_and_transfer<TSC>(&mut TreasuryCap<TSC>, 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<TSC>)
91: CopyLoc[12](loc10: address)
92: Call transfer::public_transfer<CoinMetadata<TSC>>(CoinMetadata<TSC>, address)
93: Branch(96)
B14:
94: MoveLoc[10](loc8: CoinMetadata<TSC>)
95: Call transfer::public_freeze_object<CoinMetadata<TSC>>(CoinMetadata<TSC>)
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<TSC>)
103: MoveLoc[12](loc10: address)
104: Call transfer::public_transfer<TreasuryCap<TSC>>(TreasuryCap<TSC>, address)
105: Branch(108)
B17:
106: MoveLoc[15](loc13: TreasuryCap<TSC>)
107: Call transfer::public_freeze_object<TreasuryCap<TSC>>(TreasuryCap<TSC>)
B18:
108: Ret
}
Constants [
0 => vector<u8>: 890106035453430a54656e736f7243617368006e68747470733a2f2f636f666665652d72616e646f6d2d636172702d3538382e6d7970696e6174612e636c6f75642f697066732f6261666b726569667432636c746e706a74367a6d79706f7165676c6e616f6a766e356e74336966796379347a6d33747a646d367633746b3777637900743ba40b00000001
1 => u8: 1
2 => u8: 2
3 => u8: 3
4 => u64: 0
]
}
SafeCoin