stake
Module0xf996…64fb
- Move path
- 0xba0d…e978::stake
- Functions
- 22 public, 0 entry
- Structs
- 2
- Friend modules
- None
Bytecode127 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module ba0dd78bdd5d1b5f02a689444522ea9a79e1bc4cd4d8e6a57b59f3fbcae5e978.stake {
use ba0dd78bdd5d1b5f02a689444522ea9a79e1bc4cd4d8e6a57b59f3fbcae5e978::error;
use ba0dd78bdd5d1b5f02a689444522ea9a79e1bc4cd4d8e6a57b59f3fbcae5e978::farm;
use ba0dd78bdd5d1b5f02a689444522ea9a79e1bc4cd4d8e6a57b59f3fbcae5e978::version;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
struct StakeEvent has copy, drop, store {
farm_id: ID,
receipt_id: ID,
stake_amount: u64,
total_staked: u64,
tx_sender: address
}
struct IncreaseStakeEvent has copy, drop, store {
farm_id: ID,
receipt_id: ID,
stake_amount: u64,
total_staked: u64,
tx_sender: address
}
public stake<Ty0>(Arg0: &mut Farm<Ty0>, Arg1: Balance<Ty0>, Arg2: &Clock, Arg3: &Version, Arg4: &mut TxContext): StakeReceipt {
L5: loc0: u64
L6: loc1: StakeReceipt
B0:
0MoveLoc[3](Arg3: &Version)
1Call version::assert_supported_version(&Version)
2ImmBorrowLoc[1](Arg1: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4StLoc[5](loc0: u64)
5CopyLoc[5](loc0: u64)
6LdU64(0)
7Gt
8BrFalse(10)
B1:
9Branch(18)
B2:
10MoveLoc[0](Arg0: &mut Farm<Ty0>)
11Pop
12MoveLoc[4](Arg4: &mut TxContext)
13Pop
14MoveLoc[2](Arg2: &Clock)
15Pop
16Call error::zero_amount(): u64
17Abort
B3:
18CopyLoc[0](Arg0: &mut Farm<Ty0>)
19MoveLoc[1](Arg1: Balance<Ty0>)
20MoveLoc[2](Arg2: &Clock)
21CopyLoc[4](Arg4: &mut TxContext)
22Call farm::stake<Ty0>(&mut Farm<Ty0>, Balance<Ty0>, &Clock, &mut TxContext): StakeReceipt
23StLoc[6](loc1: StakeReceipt)
24CopyLoc[0](Arg0: &mut Farm<Ty0>)
25FreezeRef
26Call object::id<Farm<Ty0>>(&Farm<Ty0>): ID
27ImmBorrowLoc[6](loc1: StakeReceipt)
28Call object::id<StakeReceipt>(&StakeReceipt): ID
29MoveLoc[5](loc0: u64)
30MoveLoc[0](Arg0: &mut Farm<Ty0>)
31FreezeRef
32Call farm::total_staked<Ty0>(&Farm<Ty0>): u64
33MoveLoc[4](Arg4: &mut TxContext)
34FreezeRef
35Call tx_context::sender(&TxContext): address
36Pack[0](StakeEvent)
37Call event::emit<StakeEvent>(StakeEvent)
38MoveLoc[6](loc1: StakeReceipt)
39Ret
}
public increase_stake<Ty0>(Arg0: &mut Farm<Ty0>, Arg1: &mut StakeReceipt, Arg2: Balance<Ty0>, Arg3: &Version, Arg4: &Clock, Arg5: &mut TxContext) {
L6: loc0: u64
B0:
0MoveLoc[3](Arg3: &Version)
1Call version::assert_supported_version(&Version)
2ImmBorrowLoc[2](Arg2: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4StLoc[6](loc0: u64)
5CopyLoc[6](loc0: u64)
6LdU64(0)
7Gt
8BrFalse(10)
B1:
9Branch(20)
B2:
10MoveLoc[1](Arg1: &mut StakeReceipt)
11Pop
12MoveLoc[0](Arg0: &mut Farm<Ty0>)
13Pop
14MoveLoc[5](Arg5: &mut TxContext)
15Pop
16MoveLoc[4](Arg4: &Clock)
17Pop
18Call error::zero_amount(): u64
19Abort
B3:
20CopyLoc[0](Arg0: &mut Farm<Ty0>)
21CopyLoc[1](Arg1: &mut StakeReceipt)
22MoveLoc[2](Arg2: Balance<Ty0>)
23MoveLoc[4](Arg4: &Clock)
24Call farm::increase_stake<Ty0>(&mut Farm<Ty0>, &mut StakeReceipt, Balance<Ty0>, &Clock)
25CopyLoc[0](Arg0: &mut Farm<Ty0>)
26FreezeRef
27Call object::id<Farm<Ty0>>(&Farm<Ty0>): ID
28MoveLoc[1](Arg1: &mut StakeReceipt)
29FreezeRef
30Call object::id<StakeReceipt>(&StakeReceipt): ID
31MoveLoc[6](loc0: u64)
32MoveLoc[0](Arg0: &mut Farm<Ty0>)
33FreezeRef
34Call farm::total_staked<Ty0>(&Farm<Ty0>): u64
35MoveLoc[5](Arg5: &mut TxContext)
36FreezeRef
37Call tx_context::sender(&TxContext): address
38Pack[1](IncreaseStakeEvent)
39Call event::emit<IncreaseStakeEvent>(IncreaseStakeEvent)
40Ret
}
}