bkt
Module0xce7f…4db2
- Move path
- 0xce7f…4db2::bkt
- Functions
- 62 public, 0 entry
- Structs
- 3
- Friend modules
- buck
bkt
Bytecode174 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module ce7ff77a83ea0cb6fd39bd8748e2ec89a3f41e8efdc3f4eb123e0ca37b184db2.bkt {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
struct BKT has drop {
dummy_field: bool
}
struct BktTreasury has key {
id: UID,
eco_part: Balance<BKT>,
bkt_supply: Supply<BKT>
}
struct BktAdminCap has store, key {
id: UID
}
init(Arg0: BKT, Arg1: &mut TxContext) {
L2: loc0: BktAdminCap
B0:
0MoveLoc[0](Arg0: BKT)
1MoveLoc[1](Arg1: &mut TxContext)
2Call new_treasury(BKT, &mut TxContext): BktTreasury * BktAdminCap
3StLoc[2](loc0: BktAdminCap)
4Call transfer::share_object<BktTreasury>(BktTreasury)
5MoveLoc[2](loc0: BktAdminCap)
6LdConst[0](address: 0x16..)
7Call transfer::transfer<BktAdminCap>(BktAdminCap, address)
8Ret
}
new_treasury(Arg0: BKT, Arg1: &mut TxContext): BktTreasury * BktAdminCap {
L2: loc0: BktAdminCap
L3: loc1: CoinMetadata<BKT>
L4: loc2: Supply<BKT>
L5: loc3: BktTreasury
L6: loc4: TreasuryCap<BKT>
L7: loc5: Balance<BKT>
B0:
0MoveLoc[0](Arg0: BKT)
1LdU8(3)
2LdConst[3](vector<u8>: "BKT..)
3LdConst[4](vector<u8>: "Buc..)
4LdConst[5](vector<u8>: "the..)
5LdConst[6](vector<u8>: "htt..)
6Call url::new_unsafe_from_bytes(vector<u8>): Url
7Call option::some<Url>(Url): Option<Url>
8CopyLoc[1](Arg1: &mut TxContext)
9Call coin::create_currency<BKT>(BKT, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<BKT> * CoinMetadata<BKT>
10StLoc[3](loc1: CoinMetadata<BKT>)
11StLoc[6](loc4: TreasuryCap<BKT>)
12MoveLoc[3](loc1: CoinMetadata<BKT>)
13Call transfer::public_freeze_object<CoinMetadata<BKT>>(CoinMetadata<BKT>)
14MutBorrowLoc[6](loc4: TreasuryCap<BKT>)
15LdConst[2](u64: 3000..)
16Call amount_of(u64): u64
17Call coin::mint_balance<BKT>(&mut TreasuryCap<BKT>, u64): Balance<BKT>
18StLoc[7](loc5: Balance<BKT>)
19MutBorrowLoc[6](loc4: TreasuryCap<BKT>)
20LdConst[1](u64: 1000..)
21LdConst[2](u64: 3000..)
22Sub
23Call amount_of(u64): u64
24CopyLoc[1](Arg1: &mut TxContext)
25Call coin::mint<BKT>(&mut TreasuryCap<BKT>, u64, &mut TxContext): Coin<BKT>
26LdConst[0](address: 0x16..)
27Call transfer::public_transfer<Coin<BKT>>(Coin<BKT>, address)
28MoveLoc[6](loc4: TreasuryCap<BKT>)
29Call coin::treasury_into_supply<BKT>(TreasuryCap<BKT>): Supply<BKT>
30StLoc[4](loc2: Supply<BKT>)
31ImmBorrowLoc[4](loc2: Supply<BKT>)
32Call balance::supply_value<BKT>(&Supply<BKT>): u64
33LdConst[1](u64: 1000..)
34Call amount_of(u64): u64
35Eq
36BrFalse(38)
B1:
37Branch(42)
B2:
38MoveLoc[1](Arg1: &mut TxContext)
39Pop
40LdU64(0)
41Abort
B3:
42CopyLoc[1](Arg1: &mut TxContext)
43Call object::new(&mut TxContext): UID
44MoveLoc[7](loc5: Balance<BKT>)
45MoveLoc[4](loc2: Supply<BKT>)
46Pack[1](BktTreasury)
47StLoc[5](loc3: BktTreasury)
48MoveLoc[1](Arg1: &mut TxContext)
49Call object::new(&mut TxContext): UID
50Pack[2](BktAdminCap)
51StLoc[2](loc0: BktAdminCap)
52MoveLoc[5](loc3: BktTreasury)
53MoveLoc[2](loc0: BktAdminCap)
54Ret
}
public collect_bkt(Arg0: &mut BktTreasury, Arg1: Balance<BKT>) {
B0:
0MoveLoc[0](Arg0: &mut BktTreasury)
1MutBorrowField[0](BktTreasury.eco_part: Balance<BKT>)
2MoveLoc[1](Arg1: Balance<BKT>)
3Call balance::join<BKT>(&mut Balance<BKT>, Balance<BKT>): u64
4Pop
5Ret
}
public withdraw_treasury(Arg0: &BktAdminCap, Arg1: &mut BktTreasury, Arg2: u64): Balance<BKT> {
B0:
0MoveLoc[1](Arg1: &mut BktTreasury)
1MutBorrowField[0](BktTreasury.eco_part: Balance<BKT>)
2MoveLoc[2](Arg2: u64)
3Call balance::split<BKT>(&mut Balance<BKT>, u64): Balance<BKT>
4Ret
}
entry withdraw_treasury_to(Arg0: &BktAdminCap, Arg1: &mut BktTreasury, Arg2: u64, Arg3: address, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &BktAdminCap)
1MoveLoc[1](Arg1: &mut BktTreasury)
2MoveLoc[2](Arg2: u64)
3Call withdraw_treasury(&BktAdminCap, &mut BktTreasury, u64): Balance<BKT>
4MoveLoc[4](Arg4: &mut TxContext)
5Call coin::from_balance<BKT>(Balance<BKT>, &mut TxContext): Coin<BKT>
6MoveLoc[3](Arg3: address)
7Call transfer::public_transfer<Coin<BKT>>(Coin<BKT>, address)
8Ret
}
public(friend) release_bkt(Arg0: &mut BktTreasury, Arg1: u64): Balance<BKT> {
B0:
0MoveLoc[0](Arg0: &mut BktTreasury)
1MutBorrowField[0](BktTreasury.eco_part: Balance<BKT>)
2MoveLoc[1](Arg1: u64)
3Call balance::split<BKT>(&mut Balance<BKT>, u64): Balance<BKT>
4Ret
}
amount_of(Arg0: u64): u64 {
B0:
0MoveLoc[0](Arg0: u64)
1LdU64(1000)
2Mul
3Ret
}
public get_eco_part_balance(Arg0: &BktTreasury): u64 {
B0:
0MoveLoc[0](Arg0: &BktTreasury)
1ImmBorrowField[0](BktTreasury.eco_part: Balance<BKT>)
2Call balance::value<BKT>(&Balance<BKT>): u64
3Ret
}
Constants [
0 => address: 0x169451f78c5f099a57b0126902a7e61a0c9dace2a8e40caa16168e874d0f0156
1 => u64: 100000000
2 => u64: 30000000
3 => vector<u8>: "BKT" // interpreted as UTF8 string
4 => vector<u8>: "Bucket Token" // interpreted as UTF8 string
5 => vector<u8>: "the utility token of bucketprotocol.io" // interpreted as UTF8 string
6 => vector<u8>: "https://ipfs.io/ipfs/QmRfNHXUBoeCczQexM2vzYzCM11tyovW1ZmTsb4ZMc1poj" // interpreted as UTF8 string
]
}