drf
Module0x294d…af0e
- Move path
- 0x294d…af0e::drf
- Functions
- 42 public, 0 entry
- Structs
- 6
- Friend modules
- None
drf
Bytecode169 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 294de7579d55c110a00a7c4946e09a1b5cbeca2592fbb83fd7bfacba3cfeaf0e.drf {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_object_field;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
struct TreasuryCapKey has copy, drop, store {
dummy_field: bool
}
struct ControlledTreasury<phantom Ty0> has key {
id: UID
}
struct ControlledTreasuryCap has store, key {
id: UID,
for_object: ID
}
struct MintEvent<phantom Ty0> has copy, drop {
amount: u64
}
struct BurnEvent<phantom Ty0> has copy, drop {
amount: u64
}
struct DRF has drop {
dummy_field: bool
}
init(Arg0: DRF, Arg1: &mut TxContext) {
L2: loc0: Coin<DRF>
L3: loc1: ControlledTreasury<DRF>
L4: loc2: ControlledTreasuryCap
L5: loc3: DenyCapV2<DRF>
L6: loc4: CoinMetadata<DRF>
L7: loc5: TreasuryCap<DRF>
B0:
0MoveLoc[0](Arg0: DRF)
1LdConst[2](u8: 6)
2LdConst[3](vector<u8>: "DRF..)
3LdConst[4](vector<u8>: "$DR..)
4LdConst[5](vector<u8>: "$DR..)
5LdConst[6](vector<u8>: "htt..)
6Call url::new_unsafe_from_bytes(vector<u8>): Url
7Call option::some<Url>(Url): Option<Url>
8LdTrue
9CopyLoc[1](Arg1: &mut TxContext)
10Call coin::create_regulated_currency_v2<DRF>(DRF, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, bool, &mut TxContext): TreasuryCap<DRF> * DenyCapV2<DRF> * CoinMetadata<DRF>
11StLoc[6](loc4: CoinMetadata<DRF>)
12StLoc[5](loc3: DenyCapV2<DRF>)
13StLoc[7](loc5: TreasuryCap<DRF>)
14MutBorrowLoc[7](loc5: TreasuryCap<DRF>)
15LdConst[1](u64: 1000..)
16CopyLoc[1](Arg1: &mut TxContext)
17Call coin::mint<DRF>(&mut TreasuryCap<DRF>, u64, &mut TxContext): Coin<DRF>
18StLoc[2](loc0: Coin<DRF>)
19CopyLoc[1](Arg1: &mut TxContext)
20Call object::new(&mut TxContext): UID
21PackGeneric[0](ControlledTreasury<DRF>)
22StLoc[3](loc1: ControlledTreasury<DRF>)
23CopyLoc[1](Arg1: &mut TxContext)
24Call object::new(&mut TxContext): UID
25ImmBorrowLoc[3](loc1: ControlledTreasury<DRF>)
26ImmBorrowFieldGeneric[0](ControlledTreasury.id: UID)
27Call object::uid_to_inner(&UID): ID
28Pack[2](ControlledTreasuryCap)
29StLoc[4](loc2: ControlledTreasuryCap)
30MutBorrowLoc[3](loc1: ControlledTreasury<DRF>)
31MutBorrowFieldGeneric[0](ControlledTreasury.id: UID)
32LdFalse
33Pack[0](TreasuryCapKey)
34MoveLoc[7](loc5: TreasuryCap<DRF>)
35Call dynamic_object_field::add<TreasuryCapKey, TreasuryCap<DRF>>(&mut UID, TreasuryCapKey, TreasuryCap<DRF>)
36MoveLoc[3](loc1: ControlledTreasury<DRF>)
37Call transfer::share_object<ControlledTreasury<DRF>>(ControlledTreasury<DRF>)
38MoveLoc[4](loc2: ControlledTreasuryCap)
39CopyLoc[1](Arg1: &mut TxContext)
40FreezeRef
41Call tx_context::sender(&TxContext): address
42Call transfer::public_transfer<ControlledTreasuryCap>(ControlledTreasuryCap, address)
43MoveLoc[6](loc4: CoinMetadata<DRF>)
44Call transfer::public_freeze_object<CoinMetadata<DRF>>(CoinMetadata<DRF>)
45MoveLoc[5](loc3: DenyCapV2<DRF>)
46CopyLoc[1](Arg1: &mut TxContext)
47FreezeRef
48Call tx_context::sender(&TxContext): address
49Call transfer::public_transfer<DenyCapV2<DRF>>(DenyCapV2<DRF>, address)
50MoveLoc[2](loc0: Coin<DRF>)
51MoveLoc[1](Arg1: &mut TxContext)
52FreezeRef
53Call tx_context::sender(&TxContext): address
54Call transfer::public_transfer<Coin<DRF>>(Coin<DRF>, address)
55Ret
}
public mint<Ty0>(Arg0: &ControlledTreasuryCap, Arg1: &mut ControlledTreasury<Ty0>, Arg2: u64, Arg3: &mut TxContext): Coin<Ty0> {
B0:
0CopyLoc[1](Arg1: &mut ControlledTreasury<Ty0>)
1Call treasury_cap_mut<Ty0>(&mut ControlledTreasury<Ty0>): &mut TreasuryCap<Ty0>
2FreezeRef
3Call coin::total_supply<Ty0>(&TreasuryCap<Ty0>): u64
4CopyLoc[2](Arg2: u64)
5Add
6LdConst[1](u64: 1000..)
7Le
8BrFalse(10)
B1:
9Branch(16)
B2:
10MoveLoc[3](Arg3: &mut TxContext)
11Pop
12MoveLoc[1](Arg1: &mut ControlledTreasury<Ty0>)
13Pop
14LdConst[0](u64: 0)
15Abort
B3:
16CopyLoc[2](Arg2: u64)
17PackGeneric[1](MintEvent<Ty0>)
18Call event::emit<MintEvent<Ty0>>(MintEvent<Ty0>)
19MoveLoc[1](Arg1: &mut ControlledTreasury<Ty0>)
20Call treasury_cap_mut<Ty0>(&mut ControlledTreasury<Ty0>): &mut TreasuryCap<Ty0>
21MoveLoc[2](Arg2: u64)
22MoveLoc[3](Arg3: &mut TxContext)
23Call coin::mint<Ty0>(&mut TreasuryCap<Ty0>, u64, &mut TxContext): Coin<Ty0>
24Ret
}
public burn<Ty0>(Arg0: &ControlledTreasuryCap, Arg1: &mut ControlledTreasury<Ty0>, Arg2: Coin<Ty0>) {
B0:
0ImmBorrowLoc[2](Arg2: Coin<Ty0>)
1Call coin::value<Ty0>(&Coin<Ty0>): u64
2PackGeneric[2](BurnEvent<Ty0>)
3Call event::emit<BurnEvent<Ty0>>(BurnEvent<Ty0>)
4MoveLoc[1](Arg1: &mut ControlledTreasury<Ty0>)
5Call treasury_cap_mut<Ty0>(&mut ControlledTreasury<Ty0>): &mut TreasuryCap<Ty0>
6MoveLoc[2](Arg2: Coin<Ty0>)
7Call coin::burn<Ty0>(&mut TreasuryCap<Ty0>, Coin<Ty0>): u64
8Pop
9Ret
}
treasury_cap_mut<Ty0>(Arg0: &mut ControlledTreasury<Ty0>): &mut TreasuryCap<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut ControlledTreasury<Ty0>)
1MutBorrowFieldGeneric[1](ControlledTreasury.id: UID)
2LdFalse
3Pack[0](TreasuryCapKey)
4Call dynamic_object_field::borrow_mut<TreasuryCapKey, TreasuryCap<Ty0>>(&mut UID, TreasuryCapKey): &mut TreasuryCap<Ty0>
5Ret
}
Constants [
0 => u64: 0
1 => u64: 1000000000000000
2 => u8: 6
3 => vector<u8>: "DRF" // interpreted as UTF8 string
4 => vector<u8>: "$DRF" // interpreted as UTF8 string
5 => vector<u8>: "$DRF is Drife's token" // interpreted as UTF8 string
6 => vector<u8>: "https://firebasestorage.googleapis.com/v0/b/drife-dubai-prod.appspot.com/o/drife_logo_round.png?alt=media&token=cb96bd23-5a08-4015-b1d2-e89114434d4f" // interpreted as UTF8 string
]
}