validator
Module0x0000…0003
- Move path
- 0x0000…0003::validator
- Functions
- 7738 public, 0 entry
- Structs
- 6
validator
Bytecode3394 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 3.validator {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::bcs;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::bag;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::sui;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
use 0000000000000000000000000000000000000000000000000000000000000003::staking_pool;
use 0000000000000000000000000000000000000000000000000000000000000003::validator_cap;
struct ValidatorMetadata has store {
sui_address: address,
protocol_pubkey_bytes: vector<u8>,
network_pubkey_bytes: vector<u8>,
worker_pubkey_bytes: vector<u8>,
proof_of_possession: vector<u8>,
name: String,
description: String,
image_url: Url,
project_url: Url,
net_address: String,
p2p_address: String,
primary_address: String,
worker_address: String,
next_epoch_protocol_pubkey_bytes: Option<vector<u8>>,
next_epoch_proof_of_possession: Option<vector<u8>>,
next_epoch_network_pubkey_bytes: Option<vector<u8>>,
next_epoch_worker_pubkey_bytes: Option<vector<u8>>,
next_epoch_net_address: Option<String>,
next_epoch_p2p_address: Option<String>,
next_epoch_primary_address: Option<String>,
next_epoch_worker_address: Option<String>,
extra_fields: Bag
}
struct Validator has store {
metadata: ValidatorMetadata,
voting_power: u64,
operation_cap_id: ID,
gas_price: u64,
staking_pool: StakingPool,
commission_rate: u64,
next_epoch_stake: u64,
next_epoch_gas_price: u64,
next_epoch_commission_rate: u64,
extra_fields: Bag
}
struct StakingRequestEvent has copy, drop {
pool_id: ID,
validator_address: address,
staker_address: address,
epoch: u64,
amount: u64
}
struct UnstakingRequestEvent has copy, drop {
pool_id: ID,
validator_address: address,
staker_address: address,
stake_activation_epoch: u64,
unstaking_epoch: u64,
principal_amount: u64,
reward_amount: u64
}
struct ConvertingToFungibleStakedSuiEvent has copy, drop {
pool_id: ID,
stake_activation_epoch: u64,
staked_sui_principal_amount: u64,
fungible_staked_sui_amount: u64
}
struct RedeemingFungibleStakedSuiEvent has copy, drop {
pool_id: ID,
fungible_staked_sui_amount: u64,
sui_amount: u64
}
public(friend) new_metadata(Arg0: address, Arg1: vector<u8>, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: String, Arg6: String, Arg7: Url, Arg8: Url, Arg9: String, Arg10: String, Arg11: String, Arg12: String, Arg13: Bag): ValidatorMetadata {
L14: loc0: address
L15: loc1: String
L16: loc2: String
L17: loc3: String
L18: loc4: String
L19: loc5: Option<vector<u8>>
L20: loc6: Option<vector<u8>>
L21: loc7: Option<vector<u8>>
L22: loc8: Option<vector<u8>>
L23: loc9: Option<String>
L24: loc10: Option<String>
L25: loc11: vector<u8>
L26: loc12: Option<String>
L27: loc13: Option<String>
L28: loc14: Bag
L29: loc15: vector<u8>
L30: loc16: vector<u8>
L31: loc17: vector<u8>
L32: loc18: String
L33: loc19: String
L34: loc20: Url
L35: loc21: Url
B0:
0MoveLoc[0](Arg0: address)
1StLoc[14](loc0: address)
2MoveLoc[1](Arg1: vector<u8>)
3StLoc[25](loc11: vector<u8>)
4MoveLoc[2](Arg2: vector<u8>)
5StLoc[29](loc15: vector<u8>)
6MoveLoc[3](Arg3: vector<u8>)
7StLoc[30](loc16: vector<u8>)
8MoveLoc[4](Arg4: vector<u8>)
9StLoc[31](loc17: vector<u8>)
10MoveLoc[5](Arg5: String)
11StLoc[32](loc18: String)
12MoveLoc[6](Arg6: String)
13StLoc[33](loc19: String)
14MoveLoc[7](Arg7: Url)
15StLoc[34](loc20: Url)
16MoveLoc[8](Arg8: Url)
17StLoc[35](loc21: Url)
18MoveLoc[9](Arg9: String)
19StLoc[15](loc1: String)
20MoveLoc[10](Arg10: String)
21StLoc[16](loc2: String)
22MoveLoc[11](Arg11: String)
23StLoc[17](loc3: String)
24MoveLoc[12](Arg12: String)
25StLoc[18](loc4: String)
26Call option::none<vector<u8>>(): Option<vector<u8>>
27StLoc[19](loc5: Option<vector<u8>>)
28Call option::none<vector<u8>>(): Option<vector<u8>>
29StLoc[20](loc6: Option<vector<u8>>)
30Call option::none<vector<u8>>(): Option<vector<u8>>
31StLoc[21](loc7: Option<vector<u8>>)
32Call option::none<vector<u8>>(): Option<vector<u8>>
33StLoc[22](loc8: Option<vector<u8>>)
34Call option::none<String>(): Option<String>
35StLoc[23](loc9: Option<String>)
36Call option::none<String>(): Option<String>
37StLoc[24](loc10: Option<String>)
38Call option::none<String>(): Option<String>
39StLoc[26](loc12: Option<String>)
40Call option::none<String>(): Option<String>
41StLoc[27](loc13: Option<String>)
42MoveLoc[13](Arg13: Bag)
43StLoc[28](loc14: Bag)
44MoveLoc[14](loc0: address)
45MoveLoc[25](loc11: vector<u8>)
46MoveLoc[29](loc15: vector<u8>)
47MoveLoc[30](loc16: vector<u8>)
48MoveLoc[31](loc17: vector<u8>)
49MoveLoc[32](loc18: String)
50MoveLoc[33](loc19: String)
51MoveLoc[34](loc20: Url)
52MoveLoc[35](loc21: Url)
53MoveLoc[15](loc1: String)
54MoveLoc[16](loc2: String)
55MoveLoc[17](loc3: String)
56MoveLoc[18](loc4: String)
57MoveLoc[19](loc5: Option<vector<u8>>)
58MoveLoc[22](loc8: Option<vector<u8>>)
59MoveLoc[20](loc6: Option<vector<u8>>)
60MoveLoc[21](loc7: Option<vector<u8>>)
61MoveLoc[23](loc9: Option<String>)
62MoveLoc[24](loc10: Option<String>)
63MoveLoc[26](loc12: Option<String>)
64MoveLoc[27](loc13: Option<String>)
65MoveLoc[28](loc14: Bag)
66Pack[0](ValidatorMetadata)
67Ret
}
public(friend) new(Arg0: address, Arg1: vector<u8>, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: vector<u8>, Arg6: vector<u8>, Arg7: vector<u8>, Arg8: vector<u8>, Arg9: vector<u8>, Arg10: vector<u8>, Arg11: vector<u8>, Arg12: vector<u8>, Arg13: u64, Arg14: u64, Arg15: &mut TxContext): Validator {
L16: loc0: bool
L17: loc1: ValidatorMetadata
B0:
0ImmBorrowLoc[9](Arg9: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(59)
B1:
5ImmBorrowLoc[10](Arg10: vector<u8>)
6VecLen(42)
7LdConst[18](u64: 256)
8Le
9BrFalse(56)
B2:
10ImmBorrowLoc[11](Arg11: vector<u8>)
11VecLen(42)
12LdConst[18](u64: 256)
13Le
14BrFalse(53)
B3:
15ImmBorrowLoc[12](Arg12: vector<u8>)
16VecLen(42)
17LdConst[18](u64: 256)
18Le
19BrFalse(50)
B4:
20ImmBorrowLoc[5](Arg5: vector<u8>)
21VecLen(42)
22LdConst[18](u64: 256)
23Le
24BrFalse(47)
B5:
25ImmBorrowLoc[6](Arg6: vector<u8>)
26VecLen(42)
27LdConst[18](u64: 256)
28Le
29BrFalse(44)
B6:
30ImmBorrowLoc[7](Arg7: vector<u8>)
31VecLen(42)
32LdConst[18](u64: 256)
33Le
34BrFalse(41)
B7:
35ImmBorrowLoc[8](Arg8: vector<u8>)
36VecLen(42)
37LdConst[18](u64: 256)
38Le
39StLoc[16](loc0: bool)
40Branch(61)
B8:
41LdFalse
42StLoc[16](loc0: bool)
43Branch(61)
B9:
44LdFalse
45StLoc[16](loc0: bool)
46Branch(61)
B10:
47LdFalse
48StLoc[16](loc0: bool)
49Branch(61)
B11:
50LdFalse
51StLoc[16](loc0: bool)
52Branch(61)
B12:
53LdFalse
54StLoc[16](loc0: bool)
55Branch(61)
B13:
56LdFalse
57StLoc[16](loc0: bool)
58Branch(61)
B14:
59LdFalse
60StLoc[16](loc0: bool)
B15:
61MoveLoc[16](loc0: bool)
62BrFalse(64)
B16:
63Branch(68)
B17:
64MoveLoc[15](Arg15: &mut TxContext)
65Pop
66LdConst[9](u64: 9)
67Abort
B18:
68CopyLoc[14](Arg14: u64)
69LdConst[17](u64: 2000)
70Le
71BrFalse(73)
B19:
72Branch(77)
B20:
73MoveLoc[15](Arg15: &mut TxContext)
74Pop
75LdConst[8](u64: 8)
76Abort
B21:
77CopyLoc[13](Arg13: u64)
78LdConst[19](u64: 100000)
79Lt
80BrFalse(82)
B22:
81Branch(86)
B23:
82MoveLoc[15](Arg15: &mut TxContext)
83Pop
84LdConst[15](u64: 102)
85Abort
B24:
86MoveLoc[0](Arg0: address)
87MoveLoc[1](Arg1: vector<u8>)
88MoveLoc[2](Arg2: vector<u8>)
89MoveLoc[3](Arg3: vector<u8>)
90MoveLoc[4](Arg4: vector<u8>)
91MoveLoc[5](Arg5: vector<u8>)
92Call ascii::string(vector<u8>): String
93Call string::from_ascii(String): String
94MoveLoc[6](Arg6: vector<u8>)
95Call ascii::string(vector<u8>): String
96Call string::from_ascii(String): String
97MoveLoc[7](Arg7: vector<u8>)
98Call url::new_unsafe_from_bytes(vector<u8>): Url
99MoveLoc[8](Arg8: vector<u8>)
100Call url::new_unsafe_from_bytes(vector<u8>): Url
101MoveLoc[9](Arg9: vector<u8>)
102Call ascii::string(vector<u8>): String
103Call string::from_ascii(String): String
104MoveLoc[10](Arg10: vector<u8>)
105Call ascii::string(vector<u8>): String
106Call string::from_ascii(String): String
107MoveLoc[11](Arg11: vector<u8>)
108Call ascii::string(vector<u8>): String
109Call string::from_ascii(String): String
110MoveLoc[12](Arg12: vector<u8>)
111Call ascii::string(vector<u8>): String
112Call string::from_ascii(String): String
113CopyLoc[15](Arg15: &mut TxContext)
114Call bag::new(&mut TxContext): Bag
115Call new_metadata(address, vector<u8>, vector<u8>, vector<u8>, vector<u8>, String, String, Url, Url, String, String, String, String, Bag): ValidatorMetadata
116StLoc[17](loc1: ValidatorMetadata)
117ImmBorrowLoc[17](loc1: ValidatorMetadata)
118Call validate_metadata(&ValidatorMetadata)
119MoveLoc[17](loc1: ValidatorMetadata)
120MoveLoc[13](Arg13: u64)
121MoveLoc[14](Arg14: u64)
122MoveLoc[15](Arg15: &mut TxContext)
123Call new_from_metadata(ValidatorMetadata, u64, u64, &mut TxContext): Validator
124Ret
}
public(friend) deactivate(Arg0: &mut Validator, Arg1: u64) {
B0:
0MoveLoc[0](Arg0: &mut Validator)
1MutBorrowField[0](Validator.staking_pool: StakingPool)
2MoveLoc[1](Arg1: u64)
3Call staking_pool::deactivate_staking_pool(&mut StakingPool, u64)
4Ret
}
public(friend) activate(Arg0: &mut Validator, Arg1: u64) {
B0:
0MoveLoc[0](Arg0: &mut Validator)
1MutBorrowField[0](Validator.staking_pool: StakingPool)
2MoveLoc[1](Arg1: u64)
3Call staking_pool::activate_staking_pool(&mut StakingPool, u64)
4Ret
}
public(friend) adjust_stake_and_gas_price(Arg0: &mut Validator) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1ImmBorrowField[1](Validator.next_epoch_gas_price: u64)
2ReadRef
3CopyLoc[0](Arg0: &mut Validator)
4MutBorrowField[2](Validator.gas_price: u64)
5WriteRef
6CopyLoc[0](Arg0: &mut Validator)
7ImmBorrowField[3](Validator.next_epoch_commission_rate: u64)
8ReadRef
9MoveLoc[0](Arg0: &mut Validator)
10MutBorrowField[4](Validator.commission_rate: u64)
11WriteRef
12Ret
}
public(friend) request_add_stake(Arg0: &mut Validator, Arg1: Balance<SUI>, Arg2: address, Arg3: &mut TxContext): StakedSui {
L4: loc0: u64
L5: loc1: u64
L6: loc2: StakedSui
B0:
0ImmBorrowLoc[1](Arg1: Balance<SUI>)
1Call balance::value<SUI>(&Balance<SUI>): u64
2StLoc[4](loc0: u64)
3CopyLoc[4](loc0: u64)
4LdU64(0)
5Gt
6BrFalse(8)
B1:
7Branch(14)
B2:
8MoveLoc[0](Arg0: &mut Validator)
9Pop
10MoveLoc[3](Arg3: &mut TxContext)
11Pop
12LdConst[11](u64: 11)
13Abort
B3:
14CopyLoc[3](Arg3: &mut TxContext)
15FreezeRef
16Call tx_context::epoch(&TxContext): u64
17LdU64(1)
18Add
19StLoc[5](loc1: u64)
20CopyLoc[0](Arg0: &mut Validator)
21MutBorrowField[0](Validator.staking_pool: StakingPool)
22MoveLoc[1](Arg1: Balance<SUI>)
23MoveLoc[5](loc1: u64)
24CopyLoc[3](Arg3: &mut TxContext)
25Call staking_pool::request_add_stake(&mut StakingPool, Balance<SUI>, u64, &mut TxContext): StakedSui
26StLoc[6](loc2: StakedSui)
27CopyLoc[0](Arg0: &mut Validator)
28ImmBorrowField[0](Validator.staking_pool: StakingPool)
29Call staking_pool::is_preactive(&StakingPool): bool
30BrFalse(34)
B4:
31CopyLoc[0](Arg0: &mut Validator)
32MutBorrowField[0](Validator.staking_pool: StakingPool)
33Call staking_pool::process_pending_stake(&mut StakingPool)
B5:
34CopyLoc[0](Arg0: &mut Validator)
35ImmBorrowField[5](Validator.next_epoch_stake: u64)
36ReadRef
37CopyLoc[4](loc0: u64)
38Add
39CopyLoc[0](Arg0: &mut Validator)
40MutBorrowField[5](Validator.next_epoch_stake: u64)
41WriteRef
42CopyLoc[0](Arg0: &mut Validator)
43FreezeRef
44Call staking_pool_id(&Validator): ID
45MoveLoc[0](Arg0: &mut Validator)
46ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
47ImmBorrowField[7](ValidatorMetadata.sui_address: address)
48ReadRef
49MoveLoc[2](Arg2: address)
50MoveLoc[3](Arg3: &mut TxContext)
51FreezeRef
52Call tx_context::epoch(&TxContext): u64
53MoveLoc[4](loc0: u64)
54Pack[2](StakingRequestEvent)
55Call event::emit<StakingRequestEvent>(StakingRequestEvent)
56MoveLoc[6](loc2: StakedSui)
57Ret
}
public(friend) convert_to_fungible_staked_sui(Arg0: &mut Validator, Arg1: StakedSui, Arg2: &mut TxContext): FungibleStakedSui {
L3: loc0: FungibleStakedSui
L4: loc1: u64
L5: loc2: u64
B0:
0ImmBorrowLoc[1](Arg1: StakedSui)
1Call staking_pool::stake_activation_epoch(&StakedSui): u64
2StLoc[4](loc1: u64)
3ImmBorrowLoc[1](Arg1: StakedSui)
4Call staking_pool::staked_sui_amount(&StakedSui): u64
5StLoc[5](loc2: u64)
6CopyLoc[0](Arg0: &mut Validator)
7MutBorrowField[0](Validator.staking_pool: StakingPool)
8MoveLoc[1](Arg1: StakedSui)
9MoveLoc[2](Arg2: &mut TxContext)
10Call staking_pool::convert_to_fungible_staked_sui(&mut StakingPool, StakedSui, &mut TxContext): FungibleStakedSui
11StLoc[3](loc0: FungibleStakedSui)
12MoveLoc[0](Arg0: &mut Validator)
13FreezeRef
14Call staking_pool_id(&Validator): ID
15MoveLoc[4](loc1: u64)
16MoveLoc[5](loc2: u64)
17ImmBorrowLoc[3](loc0: FungibleStakedSui)
18Call staking_pool::fungible_staked_sui_value(&FungibleStakedSui): u64
19Pack[4](ConvertingToFungibleStakedSuiEvent)
20Call event::emit<ConvertingToFungibleStakedSuiEvent>(ConvertingToFungibleStakedSuiEvent)
21MoveLoc[3](loc0: FungibleStakedSui)
22Ret
}
public(friend) redeem_fungible_staked_sui(Arg0: &mut Validator, Arg1: FungibleStakedSui, Arg2: &TxContext): Balance<SUI> {
L3: loc0: u64
L4: loc1: Balance<SUI>
B0:
0ImmBorrowLoc[1](Arg1: FungibleStakedSui)
1Call staking_pool::fungible_staked_sui_value(&FungibleStakedSui): u64
2StLoc[3](loc0: u64)
3CopyLoc[0](Arg0: &mut Validator)
4MutBorrowField[0](Validator.staking_pool: StakingPool)
5MoveLoc[1](Arg1: FungibleStakedSui)
6MoveLoc[2](Arg2: &TxContext)
7Call staking_pool::redeem_fungible_staked_sui(&mut StakingPool, FungibleStakedSui, &TxContext): Balance<SUI>
8StLoc[4](loc1: Balance<SUI>)
9CopyLoc[0](Arg0: &mut Validator)
10ImmBorrowField[5](Validator.next_epoch_stake: u64)
11ReadRef
12ImmBorrowLoc[4](loc1: Balance<SUI>)
13Call balance::value<SUI>(&Balance<SUI>): u64
14Sub
15CopyLoc[0](Arg0: &mut Validator)
16MutBorrowField[5](Validator.next_epoch_stake: u64)
17WriteRef
18MoveLoc[0](Arg0: &mut Validator)
19FreezeRef
20Call staking_pool_id(&Validator): ID
21MoveLoc[3](loc0: u64)
22ImmBorrowLoc[4](loc1: Balance<SUI>)
23Call balance::value<SUI>(&Balance<SUI>): u64
24Pack[5](RedeemingFungibleStakedSuiEvent)
25Call event::emit<RedeemingFungibleStakedSuiEvent>(RedeemingFungibleStakedSuiEvent)
26MoveLoc[4](loc1: Balance<SUI>)
27Ret
}
public(friend) request_add_stake_at_genesis(Arg0: &mut Validator, Arg1: Balance<SUI>, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: u64
B0:
0CopyLoc[3](Arg3: &mut TxContext)
1FreezeRef
2Call tx_context::epoch(&TxContext): u64
3LdU64(0)
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[0](Arg0: &mut Validator)
8Pop
9MoveLoc[3](Arg3: &mut TxContext)
10Pop
11LdConst[12](u64: 12)
12Abort
B3:
13ImmBorrowLoc[1](Arg1: Balance<SUI>)
14Call balance::value<SUI>(&Balance<SUI>): u64
15StLoc[4](loc0: u64)
16CopyLoc[4](loc0: u64)
17LdU64(0)
18Gt
19BrFalse(21)
B4:
20Branch(27)
B5:
21MoveLoc[0](Arg0: &mut Validator)
22Pop
23MoveLoc[3](Arg3: &mut TxContext)
24Pop
25LdConst[11](u64: 11)
26Abort
B6:
27CopyLoc[0](Arg0: &mut Validator)
28MutBorrowField[0](Validator.staking_pool: StakingPool)
29MoveLoc[1](Arg1: Balance<SUI>)
30LdU64(0)
31MoveLoc[3](Arg3: &mut TxContext)
32Call staking_pool::request_add_stake(&mut StakingPool, Balance<SUI>, u64, &mut TxContext): StakedSui
33MoveLoc[2](Arg2: address)
34Call transfer::public_transfer<StakedSui>(StakedSui, address)
35CopyLoc[0](Arg0: &mut Validator)
36MutBorrowField[0](Validator.staking_pool: StakingPool)
37Call staking_pool::process_pending_stake(&mut StakingPool)
38CopyLoc[0](Arg0: &mut Validator)
39ImmBorrowField[5](Validator.next_epoch_stake: u64)
40ReadRef
41MoveLoc[4](loc0: u64)
42Add
43MoveLoc[0](Arg0: &mut Validator)
44MutBorrowField[5](Validator.next_epoch_stake: u64)
45WriteRef
46Ret
}
public(friend) request_withdraw_stake(Arg0: &mut Validator, Arg1: StakedSui, Arg2: &TxContext): Balance<SUI> {
L3: loc0: u64
L4: loc1: u64
L5: loc2: u64
L6: loc3: u64
L7: loc4: Balance<SUI>
B0:
0ImmBorrowLoc[1](Arg1: StakedSui)
1Call staking_pool::staked_sui_amount(&StakedSui): u64
2StLoc[3](loc0: u64)
3ImmBorrowLoc[1](Arg1: StakedSui)
4Call staking_pool::stake_activation_epoch(&StakedSui): u64
5StLoc[5](loc2: u64)
6CopyLoc[0](Arg0: &mut Validator)
7MutBorrowField[0](Validator.staking_pool: StakingPool)
8MoveLoc[1](Arg1: StakedSui)
9CopyLoc[2](Arg2: &TxContext)
10Call staking_pool::request_withdraw_stake(&mut StakingPool, StakedSui, &TxContext): Balance<SUI>
11StLoc[7](loc4: Balance<SUI>)
12ImmBorrowLoc[7](loc4: Balance<SUI>)
13Call balance::value<SUI>(&Balance<SUI>): u64
14StLoc[6](loc3: u64)
15CopyLoc[6](loc3: u64)
16CopyLoc[3](loc0: u64)
17Sub
18StLoc[4](loc1: u64)
19CopyLoc[0](Arg0: &mut Validator)
20ImmBorrowField[5](Validator.next_epoch_stake: u64)
21ReadRef
22MoveLoc[6](loc3: u64)
23Sub
24CopyLoc[0](Arg0: &mut Validator)
25MutBorrowField[5](Validator.next_epoch_stake: u64)
26WriteRef
27CopyLoc[0](Arg0: &mut Validator)
28FreezeRef
29Call staking_pool_id(&Validator): ID
30MoveLoc[0](Arg0: &mut Validator)
31ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
32ImmBorrowField[7](ValidatorMetadata.sui_address: address)
33ReadRef
34CopyLoc[2](Arg2: &TxContext)
35Call tx_context::sender(&TxContext): address
36MoveLoc[5](loc2: u64)
37MoveLoc[2](Arg2: &TxContext)
38Call tx_context::epoch(&TxContext): u64
39MoveLoc[3](loc0: u64)
40MoveLoc[4](loc1: u64)
41Pack[3](UnstakingRequestEvent)
42Call event::emit<UnstakingRequestEvent>(UnstakingRequestEvent)
43MoveLoc[7](loc4: Balance<SUI>)
44Ret
}
public(friend) request_set_gas_price(Arg0: &mut Validator, Arg1: ValidatorOperationCap, Arg2: u64) {
B0:
0CopyLoc[2](Arg2: u64)
1LdConst[19](u64: 100000)
2Lt
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[15](u64: 102)
8Abort
B3:
9ImmBorrowLoc[1](Arg1: ValidatorOperationCap)
10Call validator_cap::verified_operation_cap_address(&ValidatorOperationCap): address
11CopyLoc[0](Arg0: &mut Validator)
12ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
13ImmBorrowField[7](ValidatorMetadata.sui_address: address)
14ReadRef
15Eq
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[0](Arg0: &mut Validator)
19Pop
20LdConst[14](u64: 101)
21Abort
B6:
22MoveLoc[2](Arg2: u64)
23MoveLoc[0](Arg0: &mut Validator)
24MutBorrowField[1](Validator.next_epoch_gas_price: u64)
25WriteRef
26Ret
}
public(friend) set_candidate_gas_price(Arg0: &mut Validator, Arg1: ValidatorOperationCap, Arg2: u64) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9CopyLoc[2](Arg2: u64)
10LdConst[19](u64: 100000)
11Lt
12BrFalse(14)
B4:
13Branch(18)
B5:
14MoveLoc[0](Arg0: &mut Validator)
15Pop
16LdConst[15](u64: 102)
17Abort
B6:
18ImmBorrowLoc[1](Arg1: ValidatorOperationCap)
19Call validator_cap::verified_operation_cap_address(&ValidatorOperationCap): address
20CopyLoc[0](Arg0: &mut Validator)
21ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
22ImmBorrowField[7](ValidatorMetadata.sui_address: address)
23ReadRef
24Eq
25BrFalse(27)
B7:
26Branch(31)
B8:
27MoveLoc[0](Arg0: &mut Validator)
28Pop
29LdConst[14](u64: 101)
30Abort
B9:
31CopyLoc[2](Arg2: u64)
32CopyLoc[0](Arg0: &mut Validator)
33MutBorrowField[1](Validator.next_epoch_gas_price: u64)
34WriteRef
35MoveLoc[2](Arg2: u64)
36MoveLoc[0](Arg0: &mut Validator)
37MutBorrowField[2](Validator.gas_price: u64)
38WriteRef
39Ret
}
public(friend) request_set_commission_rate(Arg0: &mut Validator, Arg1: u64) {
B0:
0CopyLoc[1](Arg1: u64)
1LdConst[17](u64: 2000)
2Le
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[8](u64: 8)
8Abort
B3:
9MoveLoc[1](Arg1: u64)
10MoveLoc[0](Arg0: &mut Validator)
11MutBorrowField[3](Validator.next_epoch_commission_rate: u64)
12WriteRef
13Ret
}
public(friend) set_candidate_commission_rate(Arg0: &mut Validator, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9CopyLoc[1](Arg1: u64)
10LdConst[17](u64: 2000)
11Le
12BrFalse(14)
B4:
13Branch(18)
B5:
14MoveLoc[0](Arg0: &mut Validator)
15Pop
16LdConst[8](u64: 8)
17Abort
B6:
18CopyLoc[1](Arg1: u64)
19CopyLoc[0](Arg0: &mut Validator)
20MutBorrowField[4](Validator.commission_rate: u64)
21WriteRef
22MoveLoc[1](Arg1: u64)
23MoveLoc[0](Arg0: &mut Validator)
24MutBorrowField[3](Validator.next_epoch_commission_rate: u64)
25WriteRef
26Ret
}
public(friend) deposit_stake_rewards(Arg0: &mut Validator, Arg1: Balance<SUI>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1ImmBorrowField[5](Validator.next_epoch_stake: u64)
2ReadRef
3ImmBorrowLoc[1](Arg1: Balance<SUI>)
4Call balance::value<SUI>(&Balance<SUI>): u64
5Add
6CopyLoc[0](Arg0: &mut Validator)
7MutBorrowField[5](Validator.next_epoch_stake: u64)
8WriteRef
9MoveLoc[0](Arg0: &mut Validator)
10MutBorrowField[0](Validator.staking_pool: StakingPool)
11MoveLoc[1](Arg1: Balance<SUI>)
12Call staking_pool::deposit_rewards(&mut StakingPool, Balance<SUI>)
13Ret
}
public(friend) process_pending_stakes_and_withdraws(Arg0: &mut Validator, Arg1: &TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Validator)
1MutBorrowField[0](Validator.staking_pool: StakingPool)
2MoveLoc[1](Arg1: &TxContext)
3Call staking_pool::process_pending_stakes_and_withdraws(&mut StakingPool, &TxContext)
4Ret
}
public is_preactive(Arg0: &Validator): bool {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call staking_pool::is_preactive(&StakingPool): bool
3Ret
}
public metadata(Arg0: &Validator): &ValidatorMetadata {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2Ret
}
public sui_address(Arg0: &Validator): address {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[7](ValidatorMetadata.sui_address: address)
3ReadRef
4Ret
}
public name(Arg0: &Validator): &String {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[8](ValidatorMetadata.name: String)
3Ret
}
public description(Arg0: &Validator): &String {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[9](ValidatorMetadata.description: String)
3Ret
}
public image_url(Arg0: &Validator): &Url {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[10](ValidatorMetadata.image_url: Url)
3Ret
}
public project_url(Arg0: &Validator): &Url {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[11](ValidatorMetadata.project_url: Url)
3Ret
}
public network_address(Arg0: &Validator): &String {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[12](ValidatorMetadata.net_address: String)
3Ret
}
public p2p_address(Arg0: &Validator): &String {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[13](ValidatorMetadata.p2p_address: String)
3Ret
}
public primary_address(Arg0: &Validator): &String {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[14](ValidatorMetadata.primary_address: String)
3Ret
}
public worker_address(Arg0: &Validator): &String {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[15](ValidatorMetadata.worker_address: String)
3Ret
}
public protocol_pubkey_bytes(Arg0: &Validator): &vector<u8> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
3Ret
}
public proof_of_possession(Arg0: &Validator): &vector<u8> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[17](ValidatorMetadata.proof_of_possession: vector<u8>)
3Ret
}
public network_pubkey_bytes(Arg0: &Validator): &vector<u8> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
3Ret
}
public worker_pubkey_bytes(Arg0: &Validator): &vector<u8> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
3Ret
}
public next_epoch_network_address(Arg0: &Validator): &Option<String> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
3Ret
}
public next_epoch_p2p_address(Arg0: &Validator): &Option<String> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
3Ret
}
public next_epoch_primary_address(Arg0: &Validator): &Option<String> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
3Ret
}
public next_epoch_worker_address(Arg0: &Validator): &Option<String> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
3Ret
}
public next_epoch_protocol_pubkey_bytes(Arg0: &Validator): &Option<vector<u8>> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
3Ret
}
public next_epoch_proof_of_possession(Arg0: &Validator): &Option<vector<u8>> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[25](ValidatorMetadata.next_epoch_proof_of_possession: Option<vector<u8>>)
3Ret
}
public next_epoch_network_pubkey_bytes(Arg0: &Validator): &Option<vector<u8>> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
3Ret
}
public next_epoch_worker_pubkey_bytes(Arg0: &Validator): &Option<vector<u8>> {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
3Ret
}
public operation_cap_id(Arg0: &Validator): &ID {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[28](Validator.operation_cap_id: ID)
2Ret
}
public next_epoch_gas_price(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[1](Validator.next_epoch_gas_price: u64)
2ReadRef
3Ret
}
public total_stake_amount(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call staking_pool::sui_balance(&StakingPool): u64
3Ret
}
public stake_amount(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call staking_pool::sui_balance(&StakingPool): u64
3Ret
}
public total_stake(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call staking_pool::sui_balance(&StakingPool): u64
3Ret
}
public voting_power(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[29](Validator.voting_power: u64)
2ReadRef
3Ret
}
public(friend) set_voting_power(Arg0: &mut Validator, Arg1: u64) {
B0:
0MoveLoc[1](Arg1: u64)
1MoveLoc[0](Arg0: &mut Validator)
2MutBorrowField[29](Validator.voting_power: u64)
3WriteRef
4Ret
}
public pending_stake_amount(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call staking_pool::pending_stake_amount(&StakingPool): u64
3Ret
}
public pending_stake_withdraw_amount(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call staking_pool::pending_stake_withdraw_amount(&StakingPool): u64
3Ret
}
public gas_price(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[2](Validator.gas_price: u64)
2ReadRef
3Ret
}
public commission_rate(Arg0: &Validator): u64 {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[4](Validator.commission_rate: u64)
2ReadRef
3Ret
}
public pool_token_exchange_rate_at_epoch(Arg0: &Validator, Arg1: u64): PoolTokenExchangeRate {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2MoveLoc[1](Arg1: u64)
3Call staking_pool::pool_token_exchange_rate_at_epoch(&StakingPool, u64): PoolTokenExchangeRate
4Ret
}
public staking_pool_id(Arg0: &Validator): ID {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Call object::id<StakingPool>(&StakingPool): ID
3Ret
}
public is_duplicate(Arg0: &Validator, Arg1: &Validator): bool {
L2: loc0: bool
L3: loc1: vector<u8>
L4: loc2: bool
L5: loc3: bool
L6: loc4: bool
L7: loc5: &vector<u8>
L8: loc6: bool
L9: loc7: bool
L10: loc8: bool
L11: loc9: bool
L12: loc10: bool
L13: loc11: bool
L14: loc12: bool
L15: loc13: bool
L16: loc14: bool
L17: loc15: bool
L18: loc16: bool
L19: loc17: bool
L20: loc18: vector<u8>
L21: loc19: bool
L22: loc20: bool
L23: loc21: &vector<u8>
L24: loc22: bool
L25: loc23: vector<u8>
L26: loc24: &vector<u8>
L27: loc25: bool
L28: loc26: vector<u8>
L29: loc27: &vector<u8>
L30: loc28: bool
L31: loc29: bool
L32: loc30: String
L33: loc31: &String
L34: loc32: bool
L35: loc33: String
L36: loc34: &String
L37: loc35: bool
L38: loc36: String
L39: loc37: &String
L40: loc38: bool
L41: loc39: String
L42: loc40: &String
L43: loc41: bool
L44: loc42: vector<u8>
L45: loc43: vector<u8>
L46: loc44: &vector<u8>
L47: loc45: bool
L48: loc46: vector<u8>
L49: loc47: &vector<u8>
L50: loc48: bool
L51: loc49: &vector<u8>
L52: loc50: vector<u8>
L53: loc51: &vector<u8>
L54: loc52: bool
L55: loc53: vector<u8>
L56: loc54: &vector<u8>
L57: loc55: bool
L58: loc56: vector<u8>
L59: loc57: &vector<u8>
L60: loc58: bool
L61: loc59: String
L62: loc60: &String
L63: loc61: bool
L64: loc62: bool
L65: loc63: String
L66: loc64: &String
L67: loc65: bool
L68: loc66: String
L69: loc67: &String
L70: loc68: bool
L71: loc69: String
L72: loc70: &String
L73: loc71: bool
L74: loc72: bool
L75: loc73: Option<String>
L76: loc74: Option<String>
L77: loc75: Option<String>
L78: loc76: Option<vector<u8>>
L79: loc77: Option<vector<u8>>
L80: loc78: Option<vector<u8>>
L81: loc79: Option<vector<u8>>
L82: loc80: Option<vector<u8>>
L83: loc81: Option<String>
L84: loc82: &String
L85: loc83: &String
L86: loc84: &String
L87: loc85: &vector<u8>
L88: loc86: &vector<u8>
L89: loc87: &vector<u8>
L90: loc88: &String
L91: loc89: &vector<u8>
L92: loc90: &vector<u8>
L93: loc91: Option<String>
L94: loc92: Option<String>
L95: loc93: Option<String>
L96: loc94: Option<vector<u8>>
L97: loc95: Option<vector<u8>>
L98: loc96: Option<vector<u8>>
L99: loc97: Option<vector<u8>>
L100: loc98: Option<vector<u8>>
L101: loc99: Option<String>
L102: loc100: &String
L103: loc101: &String
L104: loc102: &String
L105: loc103: &vector<u8>
L106: loc104: &vector<u8>
L107: loc105: &vector<u8>
L108: loc106: &vector<u8>
L109: loc107: &vector<u8>
L110: loc108: &String
L111: loc109: &Option<String>
L112: loc110: &Option<String>
L113: loc111: &Option<String>
L114: loc112: &Option<String>
L115: loc113: &Option<String>
L116: loc114: &Option<String>
L117: loc115: &Option<vector<u8>>
L118: loc116: &Option<vector<u8>>
L119: loc117: &Option<vector<u8>>
L120: loc118: &Option<String>
L121: loc119: &Option<vector<u8>>
L122: loc120: &Option<vector<u8>>
L123: loc121: &Option<vector<u8>>
L124: loc122: &Option<vector<u8>>
L125: loc123: &Option<vector<u8>>
L126: loc124: &Option<String>
L127: loc125: &Option<vector<u8>>
L128: loc126: &Option<vector<u8>>
L129: loc127: &Option<String>
L130: loc128: &Option<String>
L131: loc129: &Option<String>
L132: loc130: &Option<String>
L133: loc131: &Option<vector<u8>>
L134: loc132: &Option<vector<u8>>
L135: loc133: &Option<vector<u8>>
L136: loc134: &Option<vector<u8>>
L137: loc135: &Option<vector<u8>>
L138: loc136: &Option<String>
L139: loc137: &Option<String>
L140: loc138: &Option<String>
L141: loc139: &Option<String>
L142: loc140: &Option<vector<u8>>
L143: loc141: &Option<vector<u8>>
L144: loc142: &Option<vector<u8>>
L145: loc143: &Option<vector<u8>>
L146: loc144: &Option<vector<u8>>
L147: loc145: &ValidatorMetadata
L148: loc146: &ValidatorMetadata
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
2StLoc[148](loc146: &ValidatorMetadata)
3MoveLoc[1](Arg1: &Validator)
4ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
5StLoc[147](loc145: &ValidatorMetadata)
6CopyLoc[148](loc146: &ValidatorMetadata)
7ImmBorrowField[7](ValidatorMetadata.sui_address: address)
8ReadRef
9CopyLoc[147](loc145: &ValidatorMetadata)
10ImmBorrowField[7](ValidatorMetadata.sui_address: address)
11ReadRef
12Eq
13BrFalse(21)
B1:
14MoveLoc[148](loc146: &ValidatorMetadata)
15Pop
16MoveLoc[147](loc145: &ValidatorMetadata)
17Pop
18LdTrue
19StLoc[2](loc0: bool)
20Branch(1183)
B2:
21CopyLoc[148](loc146: &ValidatorMetadata)
22ImmBorrowField[8](ValidatorMetadata.name: String)
23ReadRef
24CopyLoc[147](loc145: &ValidatorMetadata)
25ImmBorrowField[8](ValidatorMetadata.name: String)
26ReadRef
27Eq
28BrFalse(36)
B3:
29MoveLoc[148](loc146: &ValidatorMetadata)
30Pop
31MoveLoc[147](loc145: &ValidatorMetadata)
32Pop
33LdTrue
34StLoc[2](loc0: bool)
35Branch(1183)
B4:
36CopyLoc[148](loc146: &ValidatorMetadata)
37ImmBorrowField[12](ValidatorMetadata.net_address: String)
38ReadRef
39CopyLoc[147](loc145: &ValidatorMetadata)
40ImmBorrowField[12](ValidatorMetadata.net_address: String)
41ReadRef
42Eq
43BrFalse(51)
B5:
44MoveLoc[148](loc146: &ValidatorMetadata)
45Pop
46MoveLoc[147](loc145: &ValidatorMetadata)
47Pop
48LdTrue
49StLoc[2](loc0: bool)
50Branch(1183)
B6:
51CopyLoc[148](loc146: &ValidatorMetadata)
52ImmBorrowField[13](ValidatorMetadata.p2p_address: String)
53ReadRef
54CopyLoc[147](loc145: &ValidatorMetadata)
55ImmBorrowField[13](ValidatorMetadata.p2p_address: String)
56ReadRef
57Eq
58BrFalse(66)
B7:
59MoveLoc[148](loc146: &ValidatorMetadata)
60Pop
61MoveLoc[147](loc145: &ValidatorMetadata)
62Pop
63LdTrue
64StLoc[2](loc0: bool)
65Branch(1183)
B8:
66CopyLoc[148](loc146: &ValidatorMetadata)
67ImmBorrowField[14](ValidatorMetadata.primary_address: String)
68ReadRef
69CopyLoc[147](loc145: &ValidatorMetadata)
70ImmBorrowField[14](ValidatorMetadata.primary_address: String)
71ReadRef
72Eq
73BrFalse(81)
B9:
74MoveLoc[148](loc146: &ValidatorMetadata)
75Pop
76MoveLoc[147](loc145: &ValidatorMetadata)
77Pop
78LdTrue
79StLoc[2](loc0: bool)
80Branch(1183)
B10:
81CopyLoc[148](loc146: &ValidatorMetadata)
82ImmBorrowField[15](ValidatorMetadata.worker_address: String)
83ReadRef
84CopyLoc[147](loc145: &ValidatorMetadata)
85ImmBorrowField[15](ValidatorMetadata.worker_address: String)
86ReadRef
87Eq
88BrFalse(96)
B11:
89MoveLoc[148](loc146: &ValidatorMetadata)
90Pop
91MoveLoc[147](loc145: &ValidatorMetadata)
92Pop
93LdTrue
94StLoc[2](loc0: bool)
95Branch(1183)
B12:
96CopyLoc[148](loc146: &ValidatorMetadata)
97ImmBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
98ReadRef
99CopyLoc[147](loc145: &ValidatorMetadata)
100ImmBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
101ReadRef
102Eq
103BrFalse(111)
B13:
104MoveLoc[148](loc146: &ValidatorMetadata)
105Pop
106MoveLoc[147](loc145: &ValidatorMetadata)
107Pop
108LdTrue
109StLoc[2](loc0: bool)
110Branch(1183)
B14:
111CopyLoc[148](loc146: &ValidatorMetadata)
112ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
113ReadRef
114CopyLoc[147](loc145: &ValidatorMetadata)
115ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
116ReadRef
117Eq
118BrFalse(126)
B15:
119MoveLoc[148](loc146: &ValidatorMetadata)
120Pop
121MoveLoc[147](loc145: &ValidatorMetadata)
122Pop
123LdTrue
124StLoc[2](loc0: bool)
125Branch(1183)
B16:
126CopyLoc[148](loc146: &ValidatorMetadata)
127ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
128ReadRef
129CopyLoc[147](loc145: &ValidatorMetadata)
130ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
131ReadRef
132Eq
133BrFalse(141)
B17:
134MoveLoc[148](loc146: &ValidatorMetadata)
135Pop
136MoveLoc[147](loc145: &ValidatorMetadata)
137Pop
138LdTrue
139StLoc[2](loc0: bool)
140Branch(1183)
B18:
141CopyLoc[148](loc146: &ValidatorMetadata)
142ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
143ReadRef
144CopyLoc[147](loc145: &ValidatorMetadata)
145ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
146ReadRef
147Eq
148BrFalse(156)
B19:
149MoveLoc[148](loc146: &ValidatorMetadata)
150Pop
151MoveLoc[147](loc145: &ValidatorMetadata)
152Pop
153LdTrue
154StLoc[2](loc0: bool)
155Branch(1183)
B20:
156CopyLoc[148](loc146: &ValidatorMetadata)
157ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
158ReadRef
159CopyLoc[147](loc145: &ValidatorMetadata)
160ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
161ReadRef
162Eq
163BrFalse(171)
B21:
164MoveLoc[148](loc146: &ValidatorMetadata)
165Pop
166MoveLoc[147](loc145: &ValidatorMetadata)
167Pop
168LdTrue
169StLoc[2](loc0: bool)
170Branch(1183)
B22:
171CopyLoc[148](loc146: &ValidatorMetadata)
172ImmBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
173ReadRef
174CopyLoc[147](loc145: &ValidatorMetadata)
175ImmBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
176ReadRef
177StLoc[93](loc91: Option<String>)
178StLoc[75](loc73: Option<String>)
179ImmBorrowLoc[75](loc73: Option<String>)
180StLoc[120](loc118: &Option<String>)
181CopyLoc[120](loc118: &Option<String>)
182Call option::is_some<String>(&Option<String>): bool
183BrFalse(209)
B23:
184MoveLoc[120](loc118: &Option<String>)
185Call option::borrow<String>(&Option<String>): &String
186StLoc[90](loc88: &String)
187ImmBorrowLoc[93](loc91: Option<String>)
188StLoc[126](loc124: &Option<String>)
189CopyLoc[126](loc124: &Option<String>)
190Call option::is_some<String>(&Option<String>): bool
191BrFalse(200)
B24:
192MoveLoc[126](loc124: &Option<String>)
193Call option::borrow<String>(&Option<String>): &String
194StLoc[110](loc108: &String)
195MoveLoc[90](loc88: &String)
196MoveLoc[110](loc108: &String)
197Eq
198StLoc[22](loc20: bool)
199Branch(206)
B25:
200MoveLoc[126](loc124: &Option<String>)
201Pop
202MoveLoc[90](loc88: &String)
203Pop
204LdFalse
205StLoc[22](loc20: bool)
B26:
206MoveLoc[22](loc20: bool)
207StLoc[21](loc19: bool)
208Branch(213)
B27:
209MoveLoc[120](loc118: &Option<String>)
210Pop
211LdFalse
212StLoc[21](loc19: bool)
B28:
213MoveLoc[21](loc19: bool)
214BrFalse(222)
B29:
215MoveLoc[148](loc146: &ValidatorMetadata)
216Pop
217MoveLoc[147](loc145: &ValidatorMetadata)
218Pop
219LdTrue
220StLoc[2](loc0: bool)
221Branch(1183)
B30:
222CopyLoc[148](loc146: &ValidatorMetadata)
223ImmBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
224ReadRef
225CopyLoc[147](loc145: &ValidatorMetadata)
226ImmBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
227ReadRef
228StLoc[101](loc99: Option<String>)
229StLoc[83](loc81: Option<String>)
230ImmBorrowLoc[83](loc81: Option<String>)
231StLoc[111](loc109: &Option<String>)
232CopyLoc[111](loc109: &Option<String>)
233Call option::is_some<String>(&Option<String>): bool
234BrFalse(260)
B31:
235MoveLoc[111](loc109: &Option<String>)
236Call option::borrow<String>(&Option<String>): &String
237StLoc[84](loc82: &String)
238ImmBorrowLoc[101](loc99: Option<String>)
239StLoc[112](loc110: &Option<String>)
240CopyLoc[112](loc110: &Option<String>)
241Call option::is_some<String>(&Option<String>): bool
242BrFalse(251)
B32:
243MoveLoc[112](loc110: &Option<String>)
244Call option::borrow<String>(&Option<String>): &String
245StLoc[102](loc100: &String)
246MoveLoc[84](loc82: &String)
247MoveLoc[102](loc100: &String)
248Eq
249StLoc[19](loc17: bool)
250Branch(257)
B33:
251MoveLoc[112](loc110: &Option<String>)
252Pop
253MoveLoc[84](loc82: &String)
254Pop
255LdFalse
256StLoc[19](loc17: bool)
B34:
257MoveLoc[19](loc17: bool)
258StLoc[18](loc16: bool)
259Branch(264)
B35:
260MoveLoc[111](loc109: &Option<String>)
261Pop
262LdFalse
263StLoc[18](loc16: bool)
B36:
264MoveLoc[18](loc16: bool)
265BrFalse(273)
B37:
266MoveLoc[148](loc146: &ValidatorMetadata)
267Pop
268MoveLoc[147](loc145: &ValidatorMetadata)
269Pop
270LdTrue
271StLoc[2](loc0: bool)
272Branch(1183)
B38:
273CopyLoc[148](loc146: &ValidatorMetadata)
274ImmBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
275ReadRef
276CopyLoc[147](loc145: &ValidatorMetadata)
277ImmBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
278ReadRef
279StLoc[94](loc92: Option<String>)
280StLoc[76](loc74: Option<String>)
281ImmBorrowLoc[76](loc74: Option<String>)
282StLoc[113](loc111: &Option<String>)
283CopyLoc[113](loc111: &Option<String>)
284Call option::is_some<String>(&Option<String>): bool
285BrFalse(311)
B39:
286MoveLoc[113](loc111: &Option<String>)
287Call option::borrow<String>(&Option<String>): &String
288StLoc[85](loc83: &String)
289ImmBorrowLoc[94](loc92: Option<String>)
290StLoc[114](loc112: &Option<String>)
291CopyLoc[114](loc112: &Option<String>)
292Call option::is_some<String>(&Option<String>): bool
293BrFalse(302)
B40:
294MoveLoc[114](loc112: &Option<String>)
295Call option::borrow<String>(&Option<String>): &String
296StLoc[103](loc101: &String)
297MoveLoc[85](loc83: &String)
298MoveLoc[103](loc101: &String)
299Eq
300StLoc[17](loc15: bool)
301Branch(308)
B41:
302MoveLoc[114](loc112: &Option<String>)
303Pop
304MoveLoc[85](loc83: &String)
305Pop
306LdFalse
307StLoc[17](loc15: bool)
B42:
308MoveLoc[17](loc15: bool)
309StLoc[16](loc14: bool)
310Branch(315)
B43:
311MoveLoc[113](loc111: &Option<String>)
312Pop
313LdFalse
314StLoc[16](loc14: bool)
B44:
315MoveLoc[16](loc14: bool)
316BrFalse(324)
B45:
317MoveLoc[148](loc146: &ValidatorMetadata)
318Pop
319MoveLoc[147](loc145: &ValidatorMetadata)
320Pop
321LdTrue
322StLoc[2](loc0: bool)
323Branch(1183)
B46:
324CopyLoc[148](loc146: &ValidatorMetadata)
325ImmBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
326ReadRef
327CopyLoc[147](loc145: &ValidatorMetadata)
328ImmBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
329ReadRef
330StLoc[95](loc93: Option<String>)
331StLoc[77](loc75: Option<String>)
332ImmBorrowLoc[77](loc75: Option<String>)
333StLoc[115](loc113: &Option<String>)
334CopyLoc[115](loc113: &Option<String>)
335Call option::is_some<String>(&Option<String>): bool
336BrFalse(362)
B47:
337MoveLoc[115](loc113: &Option<String>)
338Call option::borrow<String>(&Option<String>): &String
339StLoc[86](loc84: &String)
340ImmBorrowLoc[95](loc93: Option<String>)
341StLoc[116](loc114: &Option<String>)
342CopyLoc[116](loc114: &Option<String>)
343Call option::is_some<String>(&Option<String>): bool
344BrFalse(353)
B48:
345MoveLoc[116](loc114: &Option<String>)
346Call option::borrow<String>(&Option<String>): &String
347StLoc[104](loc102: &String)
348MoveLoc[86](loc84: &String)
349MoveLoc[104](loc102: &String)
350Eq
351StLoc[15](loc13: bool)
352Branch(359)
B49:
353MoveLoc[116](loc114: &Option<String>)
354Pop
355MoveLoc[86](loc84: &String)
356Pop
357LdFalse
358StLoc[15](loc13: bool)
B50:
359MoveLoc[15](loc13: bool)
360StLoc[13](loc11: bool)
361Branch(366)
B51:
362MoveLoc[115](loc113: &Option<String>)
363Pop
364LdFalse
365StLoc[13](loc11: bool)
B52:
366MoveLoc[13](loc11: bool)
367BrFalse(375)
B53:
368MoveLoc[148](loc146: &ValidatorMetadata)
369Pop
370MoveLoc[147](loc145: &ValidatorMetadata)
371Pop
372LdTrue
373StLoc[2](loc0: bool)
374Branch(1183)
B54:
375CopyLoc[148](loc146: &ValidatorMetadata)
376ImmBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
377ReadRef
378CopyLoc[147](loc145: &ValidatorMetadata)
379ImmBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
380ReadRef
381StLoc[96](loc94: Option<vector<u8>>)
382StLoc[78](loc76: Option<vector<u8>>)
383ImmBorrowLoc[78](loc76: Option<vector<u8>>)
384StLoc[117](loc115: &Option<vector<u8>>)
385CopyLoc[117](loc115: &Option<vector<u8>>)
386Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
387BrFalse(413)
B55:
388MoveLoc[117](loc115: &Option<vector<u8>>)
389Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
390StLoc[87](loc85: &vector<u8>)
391ImmBorrowLoc[96](loc94: Option<vector<u8>>)
392StLoc[118](loc116: &Option<vector<u8>>)
393CopyLoc[118](loc116: &Option<vector<u8>>)
394Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
395BrFalse(404)
B56:
396MoveLoc[118](loc116: &Option<vector<u8>>)
397Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
398StLoc[105](loc103: &vector<u8>)
399MoveLoc[87](loc85: &vector<u8>)
400MoveLoc[105](loc103: &vector<u8>)
401Eq
402StLoc[12](loc10: bool)
403Branch(410)
B57:
404MoveLoc[118](loc116: &Option<vector<u8>>)
405Pop
406MoveLoc[87](loc85: &vector<u8>)
407Pop
408LdFalse
409StLoc[12](loc10: bool)
B58:
410MoveLoc[12](loc10: bool)
411StLoc[11](loc9: bool)
412Branch(417)
B59:
413MoveLoc[117](loc115: &Option<vector<u8>>)
414Pop
415LdFalse
416StLoc[11](loc9: bool)
B60:
417MoveLoc[11](loc9: bool)
418BrFalse(426)
B61:
419MoveLoc[148](loc146: &ValidatorMetadata)
420Pop
421MoveLoc[147](loc145: &ValidatorMetadata)
422Pop
423LdTrue
424StLoc[2](loc0: bool)
425Branch(1183)
B62:
426CopyLoc[148](loc146: &ValidatorMetadata)
427ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
428ReadRef
429CopyLoc[147](loc145: &ValidatorMetadata)
430ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
431ReadRef
432StLoc[97](loc95: Option<vector<u8>>)
433StLoc[79](loc77: Option<vector<u8>>)
434ImmBorrowLoc[79](loc77: Option<vector<u8>>)
435StLoc[119](loc117: &Option<vector<u8>>)
436CopyLoc[119](loc117: &Option<vector<u8>>)
437Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
438BrFalse(464)
B63:
439MoveLoc[119](loc117: &Option<vector<u8>>)
440Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
441StLoc[88](loc86: &vector<u8>)
442ImmBorrowLoc[97](loc95: Option<vector<u8>>)
443StLoc[121](loc119: &Option<vector<u8>>)
444CopyLoc[121](loc119: &Option<vector<u8>>)
445Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
446BrFalse(455)
B64:
447MoveLoc[121](loc119: &Option<vector<u8>>)
448Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
449StLoc[106](loc104: &vector<u8>)
450MoveLoc[88](loc86: &vector<u8>)
451MoveLoc[106](loc104: &vector<u8>)
452Eq
453StLoc[10](loc8: bool)
454Branch(461)
B65:
455MoveLoc[121](loc119: &Option<vector<u8>>)
456Pop
457MoveLoc[88](loc86: &vector<u8>)
458Pop
459LdFalse
460StLoc[10](loc8: bool)
B66:
461MoveLoc[10](loc8: bool)
462StLoc[9](loc7: bool)
463Branch(468)
B67:
464MoveLoc[119](loc117: &Option<vector<u8>>)
465Pop
466LdFalse
467StLoc[9](loc7: bool)
B68:
468MoveLoc[9](loc7: bool)
469BrFalse(477)
B69:
470MoveLoc[148](loc146: &ValidatorMetadata)
471Pop
472MoveLoc[147](loc145: &ValidatorMetadata)
473Pop
474LdTrue
475StLoc[2](loc0: bool)
476Branch(1183)
B70:
477CopyLoc[148](loc146: &ValidatorMetadata)
478ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
479ReadRef
480CopyLoc[147](loc145: &ValidatorMetadata)
481ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
482ReadRef
483StLoc[98](loc96: Option<vector<u8>>)
484StLoc[80](loc78: Option<vector<u8>>)
485ImmBorrowLoc[80](loc78: Option<vector<u8>>)
486StLoc[122](loc120: &Option<vector<u8>>)
487CopyLoc[122](loc120: &Option<vector<u8>>)
488Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
489BrFalse(515)
B71:
490MoveLoc[122](loc120: &Option<vector<u8>>)
491Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
492StLoc[89](loc87: &vector<u8>)
493ImmBorrowLoc[98](loc96: Option<vector<u8>>)
494StLoc[123](loc121: &Option<vector<u8>>)
495CopyLoc[123](loc121: &Option<vector<u8>>)
496Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
497BrFalse(506)
B72:
498MoveLoc[123](loc121: &Option<vector<u8>>)
499Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
500StLoc[107](loc105: &vector<u8>)
501MoveLoc[89](loc87: &vector<u8>)
502MoveLoc[107](loc105: &vector<u8>)
503Eq
504StLoc[8](loc6: bool)
505Branch(512)
B73:
506MoveLoc[123](loc121: &Option<vector<u8>>)
507Pop
508MoveLoc[89](loc87: &vector<u8>)
509Pop
510LdFalse
511StLoc[8](loc6: bool)
B74:
512MoveLoc[8](loc6: bool)
513StLoc[6](loc4: bool)
514Branch(519)
B75:
515MoveLoc[122](loc120: &Option<vector<u8>>)
516Pop
517LdFalse
518StLoc[6](loc4: bool)
B76:
519MoveLoc[6](loc4: bool)
520BrFalse(528)
B77:
521MoveLoc[148](loc146: &ValidatorMetadata)
522Pop
523MoveLoc[147](loc145: &ValidatorMetadata)
524Pop
525LdTrue
526StLoc[2](loc0: bool)
527Branch(1183)
B78:
528CopyLoc[148](loc146: &ValidatorMetadata)
529ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
530ReadRef
531CopyLoc[147](loc145: &ValidatorMetadata)
532ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
533ReadRef
534StLoc[99](loc97: Option<vector<u8>>)
535StLoc[81](loc79: Option<vector<u8>>)
536ImmBorrowLoc[81](loc79: Option<vector<u8>>)
537StLoc[124](loc122: &Option<vector<u8>>)
538CopyLoc[124](loc122: &Option<vector<u8>>)
539Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
540BrFalse(566)
B79:
541MoveLoc[124](loc122: &Option<vector<u8>>)
542Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
543StLoc[91](loc89: &vector<u8>)
544ImmBorrowLoc[99](loc97: Option<vector<u8>>)
545StLoc[125](loc123: &Option<vector<u8>>)
546CopyLoc[125](loc123: &Option<vector<u8>>)
547Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
548BrFalse(557)
B80:
549MoveLoc[125](loc123: &Option<vector<u8>>)
550Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
551StLoc[108](loc106: &vector<u8>)
552MoveLoc[91](loc89: &vector<u8>)
553MoveLoc[108](loc106: &vector<u8>)
554Eq
555StLoc[5](loc3: bool)
556Branch(563)
B81:
557MoveLoc[125](loc123: &Option<vector<u8>>)
558Pop
559MoveLoc[91](loc89: &vector<u8>)
560Pop
561LdFalse
562StLoc[5](loc3: bool)
B82:
563MoveLoc[5](loc3: bool)
564StLoc[4](loc2: bool)
565Branch(570)
B83:
566MoveLoc[124](loc122: &Option<vector<u8>>)
567Pop
568LdFalse
569StLoc[4](loc2: bool)
B84:
570MoveLoc[4](loc2: bool)
571BrFalse(579)
B85:
572MoveLoc[148](loc146: &ValidatorMetadata)
573Pop
574MoveLoc[147](loc145: &ValidatorMetadata)
575Pop
576LdTrue
577StLoc[2](loc0: bool)
578Branch(1183)
B86:
579CopyLoc[148](loc146: &ValidatorMetadata)
580ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
581ReadRef
582CopyLoc[147](loc145: &ValidatorMetadata)
583ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
584ReadRef
585StLoc[100](loc98: Option<vector<u8>>)
586StLoc[82](loc80: Option<vector<u8>>)
587ImmBorrowLoc[82](loc80: Option<vector<u8>>)
588StLoc[127](loc125: &Option<vector<u8>>)
589CopyLoc[127](loc125: &Option<vector<u8>>)
590Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
591BrFalse(617)
B87:
592MoveLoc[127](loc125: &Option<vector<u8>>)
593Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
594StLoc[92](loc90: &vector<u8>)
595ImmBorrowLoc[100](loc98: Option<vector<u8>>)
596StLoc[128](loc126: &Option<vector<u8>>)
597CopyLoc[128](loc126: &Option<vector<u8>>)
598Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
599BrFalse(608)
B88:
600MoveLoc[128](loc126: &Option<vector<u8>>)
601Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
602StLoc[109](loc107: &vector<u8>)
603MoveLoc[92](loc90: &vector<u8>)
604MoveLoc[109](loc107: &vector<u8>)
605Eq
606StLoc[74](loc72: bool)
607Branch(614)
B89:
608MoveLoc[128](loc126: &Option<vector<u8>>)
609Pop
610MoveLoc[92](loc90: &vector<u8>)
611Pop
612LdFalse
613StLoc[74](loc72: bool)
B90:
614MoveLoc[74](loc72: bool)
615StLoc[73](loc71: bool)
616Branch(621)
B91:
617MoveLoc[127](loc125: &Option<vector<u8>>)
618Pop
619LdFalse
620StLoc[73](loc71: bool)
B92:
621MoveLoc[73](loc71: bool)
622BrFalse(630)
B93:
623MoveLoc[148](loc146: &ValidatorMetadata)
624Pop
625MoveLoc[147](loc145: &ValidatorMetadata)
626Pop
627LdTrue
628StLoc[2](loc0: bool)
629Branch(1183)
B94:
630CopyLoc[148](loc146: &ValidatorMetadata)
631ImmBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
632StLoc[129](loc127: &Option<String>)
633CopyLoc[129](loc127: &Option<String>)
634Call option::is_some<String>(&Option<String>): bool
635BrFalse(648)
B95:
636MoveLoc[129](loc127: &Option<String>)
637Call option::borrow<String>(&Option<String>): &String
638StLoc[72](loc70: &String)
639CopyLoc[147](loc145: &ValidatorMetadata)
640ImmBorrowField[12](ValidatorMetadata.net_address: String)
641ReadRef
642StLoc[71](loc69: String)
643MoveLoc[72](loc70: &String)
644ImmBorrowLoc[71](loc69: String)
645Eq
646StLoc[70](loc68: bool)
647Branch(652)
B96:
648MoveLoc[129](loc127: &Option<String>)
649Pop
650LdFalse
651StLoc[70](loc68: bool)
B97:
652MoveLoc[70](loc68: bool)
653BrFalse(661)
B98:
654MoveLoc[148](loc146: &ValidatorMetadata)
655Pop
656MoveLoc[147](loc145: &ValidatorMetadata)
657Pop
658LdTrue
659StLoc[2](loc0: bool)
660Branch(1183)
B99:
661CopyLoc[148](loc146: &ValidatorMetadata)
662ImmBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
663StLoc[130](loc128: &Option<String>)
664CopyLoc[130](loc128: &Option<String>)
665Call option::is_some<String>(&Option<String>): bool
666BrFalse(679)
B100:
667MoveLoc[130](loc128: &Option<String>)
668Call option::borrow<String>(&Option<String>): &String
669StLoc[69](loc67: &String)
670CopyLoc[147](loc145: &ValidatorMetadata)
671ImmBorrowField[13](ValidatorMetadata.p2p_address: String)
672ReadRef
673StLoc[68](loc66: String)
674MoveLoc[69](loc67: &String)
675ImmBorrowLoc[68](loc66: String)
676Eq
677StLoc[67](loc65: bool)
678Branch(683)
B101:
679MoveLoc[130](loc128: &Option<String>)
680Pop
681LdFalse
682StLoc[67](loc65: bool)
B102:
683MoveLoc[67](loc65: bool)
684BrFalse(692)
B103:
685MoveLoc[148](loc146: &ValidatorMetadata)
686Pop
687MoveLoc[147](loc145: &ValidatorMetadata)
688Pop
689LdTrue
690StLoc[2](loc0: bool)
691Branch(1183)
B104:
692CopyLoc[148](loc146: &ValidatorMetadata)
693ImmBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
694StLoc[131](loc129: &Option<String>)
695CopyLoc[131](loc129: &Option<String>)
696Call option::is_some<String>(&Option<String>): bool
697BrFalse(710)
B105:
698MoveLoc[131](loc129: &Option<String>)
699Call option::borrow<String>(&Option<String>): &String
700StLoc[66](loc64: &String)
701CopyLoc[147](loc145: &ValidatorMetadata)
702ImmBorrowField[14](ValidatorMetadata.primary_address: String)
703ReadRef
704StLoc[65](loc63: String)
705MoveLoc[66](loc64: &String)
706ImmBorrowLoc[65](loc63: String)
707Eq
708StLoc[63](loc61: bool)
709Branch(714)
B106:
710MoveLoc[131](loc129: &Option<String>)
711Pop
712LdFalse
713StLoc[63](loc61: bool)
B107:
714MoveLoc[63](loc61: bool)
715BrFalse(723)
B108:
716MoveLoc[148](loc146: &ValidatorMetadata)
717Pop
718MoveLoc[147](loc145: &ValidatorMetadata)
719Pop
720LdTrue
721StLoc[2](loc0: bool)
722Branch(1183)
B109:
723CopyLoc[148](loc146: &ValidatorMetadata)
724ImmBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
725StLoc[132](loc130: &Option<String>)
726CopyLoc[132](loc130: &Option<String>)
727Call option::is_some<String>(&Option<String>): bool
728BrFalse(741)
B110:
729MoveLoc[132](loc130: &Option<String>)
730Call option::borrow<String>(&Option<String>): &String
731StLoc[62](loc60: &String)
732CopyLoc[147](loc145: &ValidatorMetadata)
733ImmBorrowField[15](ValidatorMetadata.worker_address: String)
734ReadRef
735StLoc[61](loc59: String)
736MoveLoc[62](loc60: &String)
737ImmBorrowLoc[61](loc59: String)
738Eq
739StLoc[60](loc58: bool)
740Branch(745)
B111:
741MoveLoc[132](loc130: &Option<String>)
742Pop
743LdFalse
744StLoc[60](loc58: bool)
B112:
745MoveLoc[60](loc58: bool)
746BrFalse(754)
B113:
747MoveLoc[148](loc146: &ValidatorMetadata)
748Pop
749MoveLoc[147](loc145: &ValidatorMetadata)
750Pop
751LdTrue
752StLoc[2](loc0: bool)
753Branch(1183)
B114:
754CopyLoc[148](loc146: &ValidatorMetadata)
755ImmBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
756StLoc[133](loc131: &Option<vector<u8>>)
757CopyLoc[133](loc131: &Option<vector<u8>>)
758Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
759BrFalse(772)
B115:
760MoveLoc[133](loc131: &Option<vector<u8>>)
761Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
762StLoc[59](loc57: &vector<u8>)
763CopyLoc[147](loc145: &ValidatorMetadata)
764ImmBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
765ReadRef
766StLoc[58](loc56: vector<u8>)
767MoveLoc[59](loc57: &vector<u8>)
768ImmBorrowLoc[58](loc56: vector<u8>)
769Eq
770StLoc[57](loc55: bool)
771Branch(776)
B116:
772MoveLoc[133](loc131: &Option<vector<u8>>)
773Pop
774LdFalse
775StLoc[57](loc55: bool)
B117:
776MoveLoc[57](loc55: bool)
777BrFalse(785)
B118:
778MoveLoc[148](loc146: &ValidatorMetadata)
779Pop
780MoveLoc[147](loc145: &ValidatorMetadata)
781Pop
782LdTrue
783StLoc[2](loc0: bool)
784Branch(1183)
B119:
785CopyLoc[148](loc146: &ValidatorMetadata)
786ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
787StLoc[134](loc132: &Option<vector<u8>>)
788CopyLoc[134](loc132: &Option<vector<u8>>)
789Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
790BrFalse(803)
B120:
791MoveLoc[134](loc132: &Option<vector<u8>>)
792Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
793StLoc[56](loc54: &vector<u8>)
794CopyLoc[147](loc145: &ValidatorMetadata)
795ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
796ReadRef
797StLoc[55](loc53: vector<u8>)
798MoveLoc[56](loc54: &vector<u8>)
799ImmBorrowLoc[55](loc53: vector<u8>)
800Eq
801StLoc[54](loc52: bool)
802Branch(807)
B121:
803MoveLoc[134](loc132: &Option<vector<u8>>)
804Pop
805LdFalse
806StLoc[54](loc52: bool)
B122:
807MoveLoc[54](loc52: bool)
808BrFalse(816)
B123:
809MoveLoc[148](loc146: &ValidatorMetadata)
810Pop
811MoveLoc[147](loc145: &ValidatorMetadata)
812Pop
813LdTrue
814StLoc[2](loc0: bool)
815Branch(1183)
B124:
816CopyLoc[148](loc146: &ValidatorMetadata)
817ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
818StLoc[135](loc133: &Option<vector<u8>>)
819CopyLoc[135](loc133: &Option<vector<u8>>)
820Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
821BrFalse(834)
B125:
822MoveLoc[135](loc133: &Option<vector<u8>>)
823Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
824StLoc[53](loc51: &vector<u8>)
825CopyLoc[147](loc145: &ValidatorMetadata)
826ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
827ReadRef
828StLoc[52](loc50: vector<u8>)
829MoveLoc[53](loc51: &vector<u8>)
830ImmBorrowLoc[52](loc50: vector<u8>)
831Eq
832StLoc[50](loc48: bool)
833Branch(838)
B126:
834MoveLoc[135](loc133: &Option<vector<u8>>)
835Pop
836LdFalse
837StLoc[50](loc48: bool)
B127:
838MoveLoc[50](loc48: bool)
839BrFalse(847)
B128:
840MoveLoc[148](loc146: &ValidatorMetadata)
841Pop
842MoveLoc[147](loc145: &ValidatorMetadata)
843Pop
844LdTrue
845StLoc[2](loc0: bool)
846Branch(1183)
B129:
847CopyLoc[148](loc146: &ValidatorMetadata)
848ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
849StLoc[136](loc134: &Option<vector<u8>>)
850CopyLoc[136](loc134: &Option<vector<u8>>)
851Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
852BrFalse(865)
B130:
853MoveLoc[136](loc134: &Option<vector<u8>>)
854Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
855StLoc[49](loc47: &vector<u8>)
856CopyLoc[147](loc145: &ValidatorMetadata)
857ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
858ReadRef
859StLoc[48](loc46: vector<u8>)
860MoveLoc[49](loc47: &vector<u8>)
861ImmBorrowLoc[48](loc46: vector<u8>)
862Eq
863StLoc[47](loc45: bool)
864Branch(869)
B131:
865MoveLoc[136](loc134: &Option<vector<u8>>)
866Pop
867LdFalse
868StLoc[47](loc45: bool)
B132:
869MoveLoc[47](loc45: bool)
870BrFalse(878)
B133:
871MoveLoc[148](loc146: &ValidatorMetadata)
872Pop
873MoveLoc[147](loc145: &ValidatorMetadata)
874Pop
875LdTrue
876StLoc[2](loc0: bool)
877Branch(1183)
B134:
878CopyLoc[148](loc146: &ValidatorMetadata)
879ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
880StLoc[137](loc135: &Option<vector<u8>>)
881CopyLoc[137](loc135: &Option<vector<u8>>)
882Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
883BrFalse(896)
B135:
884MoveLoc[137](loc135: &Option<vector<u8>>)
885Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
886StLoc[46](loc44: &vector<u8>)
887CopyLoc[147](loc145: &ValidatorMetadata)
888ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
889ReadRef
890StLoc[45](loc43: vector<u8>)
891MoveLoc[46](loc44: &vector<u8>)
892ImmBorrowLoc[45](loc43: vector<u8>)
893Eq
894StLoc[43](loc41: bool)
895Branch(900)
B136:
896MoveLoc[137](loc135: &Option<vector<u8>>)
897Pop
898LdFalse
899StLoc[43](loc41: bool)
B137:
900MoveLoc[43](loc41: bool)
901BrFalse(909)
B138:
902MoveLoc[148](loc146: &ValidatorMetadata)
903Pop
904MoveLoc[147](loc145: &ValidatorMetadata)
905Pop
906LdTrue
907StLoc[2](loc0: bool)
908Branch(1183)
B139:
909CopyLoc[147](loc145: &ValidatorMetadata)
910ImmBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
911StLoc[138](loc136: &Option<String>)
912CopyLoc[138](loc136: &Option<String>)
913Call option::is_some<String>(&Option<String>): bool
914BrFalse(927)
B140:
915MoveLoc[138](loc136: &Option<String>)
916Call option::borrow<String>(&Option<String>): &String
917StLoc[42](loc40: &String)
918CopyLoc[148](loc146: &ValidatorMetadata)
919ImmBorrowField[12](ValidatorMetadata.net_address: String)
920ReadRef
921StLoc[41](loc39: String)
922MoveLoc[42](loc40: &String)
923ImmBorrowLoc[41](loc39: String)
924Eq
925StLoc[40](loc38: bool)
926Branch(931)
B141:
927MoveLoc[138](loc136: &Option<String>)
928Pop
929LdFalse
930StLoc[40](loc38: bool)
B142:
931MoveLoc[40](loc38: bool)
932BrFalse(940)
B143:
933MoveLoc[148](loc146: &ValidatorMetadata)
934Pop
935MoveLoc[147](loc145: &ValidatorMetadata)
936Pop
937LdTrue
938StLoc[2](loc0: bool)
939Branch(1183)
B144:
940CopyLoc[147](loc145: &ValidatorMetadata)
941ImmBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
942StLoc[139](loc137: &Option<String>)
943CopyLoc[139](loc137: &Option<String>)
944Call option::is_some<String>(&Option<String>): bool
945BrFalse(958)
B145:
946MoveLoc[139](loc137: &Option<String>)
947Call option::borrow<String>(&Option<String>): &String
948StLoc[39](loc37: &String)
949CopyLoc[148](loc146: &ValidatorMetadata)
950ImmBorrowField[13](ValidatorMetadata.p2p_address: String)
951ReadRef
952StLoc[38](loc36: String)
953MoveLoc[39](loc37: &String)
954ImmBorrowLoc[38](loc36: String)
955Eq
956StLoc[37](loc35: bool)
957Branch(962)
B146:
958MoveLoc[139](loc137: &Option<String>)
959Pop
960LdFalse
961StLoc[37](loc35: bool)
B147:
962MoveLoc[37](loc35: bool)
963BrFalse(971)
B148:
964MoveLoc[148](loc146: &ValidatorMetadata)
965Pop
966MoveLoc[147](loc145: &ValidatorMetadata)
967Pop
968LdTrue
969StLoc[2](loc0: bool)
970Branch(1183)
B149:
971CopyLoc[147](loc145: &ValidatorMetadata)
972ImmBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
973StLoc[140](loc138: &Option<String>)
974CopyLoc[140](loc138: &Option<String>)
975Call option::is_some<String>(&Option<String>): bool
976BrFalse(989)
B150:
977MoveLoc[140](loc138: &Option<String>)
978Call option::borrow<String>(&Option<String>): &String
979StLoc[36](loc34: &String)
980CopyLoc[148](loc146: &ValidatorMetadata)
981ImmBorrowField[14](ValidatorMetadata.primary_address: String)
982ReadRef
983StLoc[35](loc33: String)
984MoveLoc[36](loc34: &String)
985ImmBorrowLoc[35](loc33: String)
986Eq
987StLoc[34](loc32: bool)
988Branch(993)
B151:
989MoveLoc[140](loc138: &Option<String>)
990Pop
991LdFalse
992StLoc[34](loc32: bool)
B152:
993MoveLoc[34](loc32: bool)
994BrFalse(1002)
B153:
995MoveLoc[148](loc146: &ValidatorMetadata)
996Pop
997MoveLoc[147](loc145: &ValidatorMetadata)
998Pop
999LdTrue
1000StLoc[2](loc0: bool)
1001Branch(1183)
B154:
1002CopyLoc[147](loc145: &ValidatorMetadata)
1003ImmBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
1004StLoc[141](loc139: &Option<String>)
1005CopyLoc[141](loc139: &Option<String>)
1006Call option::is_some<String>(&Option<String>): bool
1007BrFalse(1020)
B155:
1008MoveLoc[141](loc139: &Option<String>)
1009Call option::borrow<String>(&Option<String>): &String
1010StLoc[33](loc31: &String)
1011CopyLoc[148](loc146: &ValidatorMetadata)
1012ImmBorrowField[15](ValidatorMetadata.worker_address: String)
1013ReadRef
1014StLoc[32](loc30: String)
1015MoveLoc[33](loc31: &String)
1016ImmBorrowLoc[32](loc30: String)
1017Eq
1018StLoc[30](loc28: bool)
1019Branch(1024)
B156:
1020MoveLoc[141](loc139: &Option<String>)
1021Pop
1022LdFalse
1023StLoc[30](loc28: bool)
B157:
1024MoveLoc[30](loc28: bool)
1025BrFalse(1033)
B158:
1026MoveLoc[148](loc146: &ValidatorMetadata)
1027Pop
1028MoveLoc[147](loc145: &ValidatorMetadata)
1029Pop
1030LdTrue
1031StLoc[2](loc0: bool)
1032Branch(1183)
B159:
1033CopyLoc[147](loc145: &ValidatorMetadata)
1034ImmBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
1035StLoc[142](loc140: &Option<vector<u8>>)
1036CopyLoc[142](loc140: &Option<vector<u8>>)
1037Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
1038BrFalse(1051)
B160:
1039MoveLoc[142](loc140: &Option<vector<u8>>)
1040Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
1041StLoc[29](loc27: &vector<u8>)
1042CopyLoc[148](loc146: &ValidatorMetadata)
1043ImmBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
1044ReadRef
1045StLoc[28](loc26: vector<u8>)
1046MoveLoc[29](loc27: &vector<u8>)
1047ImmBorrowLoc[28](loc26: vector<u8>)
1048Eq
1049StLoc[27](loc25: bool)
1050Branch(1055)
B161:
1051MoveLoc[142](loc140: &Option<vector<u8>>)
1052Pop
1053LdFalse
1054StLoc[27](loc25: bool)
B162:
1055MoveLoc[27](loc25: bool)
1056BrFalse(1064)
B163:
1057MoveLoc[148](loc146: &ValidatorMetadata)
1058Pop
1059MoveLoc[147](loc145: &ValidatorMetadata)
1060Pop
1061LdTrue
1062StLoc[2](loc0: bool)
1063Branch(1183)
B164:
1064CopyLoc[147](loc145: &ValidatorMetadata)
1065ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
1066StLoc[143](loc141: &Option<vector<u8>>)
1067CopyLoc[143](loc141: &Option<vector<u8>>)
1068Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
1069BrFalse(1082)
B165:
1070MoveLoc[143](loc141: &Option<vector<u8>>)
1071Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
1072StLoc[26](loc24: &vector<u8>)
1073CopyLoc[148](loc146: &ValidatorMetadata)
1074ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
1075ReadRef
1076StLoc[25](loc23: vector<u8>)
1077MoveLoc[26](loc24: &vector<u8>)
1078ImmBorrowLoc[25](loc23: vector<u8>)
1079Eq
1080StLoc[24](loc22: bool)
1081Branch(1086)
B166:
1082MoveLoc[143](loc141: &Option<vector<u8>>)
1083Pop
1084LdFalse
1085StLoc[24](loc22: bool)
B167:
1086MoveLoc[24](loc22: bool)
1087BrFalse(1095)
B168:
1088MoveLoc[148](loc146: &ValidatorMetadata)
1089Pop
1090MoveLoc[147](loc145: &ValidatorMetadata)
1091Pop
1092LdTrue
1093StLoc[2](loc0: bool)
1094Branch(1183)
B169:
1095CopyLoc[147](loc145: &ValidatorMetadata)
1096ImmBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
1097StLoc[144](loc142: &Option<vector<u8>>)
1098CopyLoc[144](loc142: &Option<vector<u8>>)
1099Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
1100BrFalse(1113)
B170:
1101MoveLoc[144](loc142: &Option<vector<u8>>)
1102Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
1103StLoc[23](loc21: &vector<u8>)
1104CopyLoc[148](loc146: &ValidatorMetadata)
1105ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
1106ReadRef
1107StLoc[20](loc18: vector<u8>)
1108MoveLoc[23](loc21: &vector<u8>)
1109ImmBorrowLoc[20](loc18: vector<u8>)
1110Eq
1111StLoc[14](loc12: bool)
1112Branch(1117)
B171:
1113MoveLoc[144](loc142: &Option<vector<u8>>)
1114Pop
1115LdFalse
1116StLoc[14](loc12: bool)
B172:
1117MoveLoc[14](loc12: bool)
1118BrFalse(1126)
B173:
1119MoveLoc[148](loc146: &ValidatorMetadata)
1120Pop
1121MoveLoc[147](loc145: &ValidatorMetadata)
1122Pop
1123LdTrue
1124StLoc[2](loc0: bool)
1125Branch(1183)
B174:
1126CopyLoc[147](loc145: &ValidatorMetadata)
1127ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
1128StLoc[145](loc143: &Option<vector<u8>>)
1129CopyLoc[145](loc143: &Option<vector<u8>>)
1130Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
1131BrFalse(1144)
B175:
1132MoveLoc[145](loc143: &Option<vector<u8>>)
1133Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
1134StLoc[7](loc5: &vector<u8>)
1135CopyLoc[148](loc146: &ValidatorMetadata)
1136ImmBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
1137ReadRef
1138StLoc[3](loc1: vector<u8>)
1139MoveLoc[7](loc5: &vector<u8>)
1140ImmBorrowLoc[3](loc1: vector<u8>)
1141Eq
1142StLoc[64](loc62: bool)
1143Branch(1148)
B176:
1144MoveLoc[145](loc143: &Option<vector<u8>>)
1145Pop
1146LdFalse
1147StLoc[64](loc62: bool)
B177:
1148MoveLoc[64](loc62: bool)
1149BrFalse(1157)
B178:
1150MoveLoc[148](loc146: &ValidatorMetadata)
1151Pop
1152MoveLoc[147](loc145: &ValidatorMetadata)
1153Pop
1154LdTrue
1155StLoc[2](loc0: bool)
1156Branch(1183)
B179:
1157MoveLoc[147](loc145: &ValidatorMetadata)
1158ImmBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
1159StLoc[146](loc144: &Option<vector<u8>>)
1160CopyLoc[146](loc144: &Option<vector<u8>>)
1161Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
1162BrFalse(1175)
B180:
1163MoveLoc[146](loc144: &Option<vector<u8>>)
1164Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
1165StLoc[51](loc49: &vector<u8>)
1166MoveLoc[148](loc146: &ValidatorMetadata)
1167ImmBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
1168ReadRef
1169StLoc[44](loc42: vector<u8>)
1170MoveLoc[51](loc49: &vector<u8>)
1171ImmBorrowLoc[44](loc42: vector<u8>)
1172Eq
1173StLoc[31](loc29: bool)
1174Branch(1181)
B181:
1175MoveLoc[148](loc146: &ValidatorMetadata)
1176Pop
1177MoveLoc[146](loc144: &Option<vector<u8>>)
1178Pop
1179LdFalse
1180StLoc[31](loc29: bool)
B182:
1181MoveLoc[31](loc29: bool)
1182StLoc[2](loc0: bool)
B183:
1183MoveLoc[2](loc0: bool)
1184Ret
}
public(friend) new_unverified_validator_operation_cap_and_transfer(Arg0: &mut Validator, Arg1: &mut TxContext) {
L2: loc0: address
B0:
0CopyLoc[1](Arg1: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3StLoc[2](loc0: address)
4CopyLoc[2](loc0: address)
5CopyLoc[0](Arg0: &mut Validator)
6ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
7ImmBorrowField[7](ValidatorMetadata.sui_address: address)
8ReadRef
9Eq
10BrFalse(12)
B1:
11Branch(18)
B2:
12MoveLoc[0](Arg0: &mut Validator)
13Pop
14MoveLoc[1](Arg1: &mut TxContext)
15Pop
16LdConst[13](u64: 100)
17Abort
B3:
18MoveLoc[2](loc0: address)
19MoveLoc[1](Arg1: &mut TxContext)
20Call validator_cap::new_unverified_validator_operation_cap_and_transfer(address, &mut TxContext): ID
21MoveLoc[0](Arg0: &mut Validator)
22MutBorrowField[28](Validator.operation_cap_id: ID)
23WriteRef
24Ret
}
public(friend) update_name(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call ascii::string(vector<u8>): String
12Call string::from_ascii(String): String
13MoveLoc[0](Arg0: &mut Validator)
14MutBorrowField[6](Validator.metadata: ValidatorMetadata)
15MutBorrowField[8](ValidatorMetadata.name: String)
16WriteRef
17Ret
}
public(friend) update_description(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call ascii::string(vector<u8>): String
12Call string::from_ascii(String): String
13MoveLoc[0](Arg0: &mut Validator)
14MutBorrowField[6](Validator.metadata: ValidatorMetadata)
15MutBorrowField[9](ValidatorMetadata.description: String)
16WriteRef
17Ret
}
public(friend) update_image_url(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call url::new_unsafe_from_bytes(vector<u8>): Url
12MoveLoc[0](Arg0: &mut Validator)
13MutBorrowField[6](Validator.metadata: ValidatorMetadata)
14MutBorrowField[10](ValidatorMetadata.image_url: Url)
15WriteRef
16Ret
}
public(friend) update_project_url(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call url::new_unsafe_from_bytes(vector<u8>): Url
12MoveLoc[0](Arg0: &mut Validator)
13MutBorrowField[6](Validator.metadata: ValidatorMetadata)
14MutBorrowField[11](ValidatorMetadata.project_url: Url)
15WriteRef
16Ret
}
public(friend) update_next_epoch_network_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call ascii::string(vector<u8>): String
12Call string::from_ascii(String): String
13Call option::some<String>(String): Option<String>
14CopyLoc[0](Arg0: &mut Validator)
15MutBorrowField[6](Validator.metadata: ValidatorMetadata)
16MutBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
17WriteRef
18MoveLoc[0](Arg0: &mut Validator)
19ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
20Call validate_metadata(&ValidatorMetadata)
21Ret
}
public(friend) update_candidate_network_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9ImmBorrowLoc[1](Arg1: vector<u8>)
10VecLen(42)
11LdConst[18](u64: 256)
12Le
13BrFalse(15)
B4:
14Branch(19)
B5:
15MoveLoc[0](Arg0: &mut Validator)
16Pop
17LdConst[9](u64: 9)
18Abort
B6:
19MoveLoc[1](Arg1: vector<u8>)
20Call ascii::string(vector<u8>): String
21Call string::from_ascii(String): String
22CopyLoc[0](Arg0: &mut Validator)
23MutBorrowField[6](Validator.metadata: ValidatorMetadata)
24MutBorrowField[12](ValidatorMetadata.net_address: String)
25WriteRef
26MoveLoc[0](Arg0: &mut Validator)
27ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
28Call validate_metadata(&ValidatorMetadata)
29Ret
}
public(friend) update_next_epoch_p2p_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call ascii::string(vector<u8>): String
12Call string::from_ascii(String): String
13Call option::some<String>(String): Option<String>
14CopyLoc[0](Arg0: &mut Validator)
15MutBorrowField[6](Validator.metadata: ValidatorMetadata)
16MutBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
17WriteRef
18MoveLoc[0](Arg0: &mut Validator)
19ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
20Call validate_metadata(&ValidatorMetadata)
21Ret
}
public(friend) update_candidate_p2p_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9ImmBorrowLoc[1](Arg1: vector<u8>)
10VecLen(42)
11LdConst[18](u64: 256)
12Le
13BrFalse(15)
B4:
14Branch(19)
B5:
15MoveLoc[0](Arg0: &mut Validator)
16Pop
17LdConst[9](u64: 9)
18Abort
B6:
19MoveLoc[1](Arg1: vector<u8>)
20Call ascii::string(vector<u8>): String
21Call string::from_ascii(String): String
22CopyLoc[0](Arg0: &mut Validator)
23MutBorrowField[6](Validator.metadata: ValidatorMetadata)
24MutBorrowField[13](ValidatorMetadata.p2p_address: String)
25WriteRef
26MoveLoc[0](Arg0: &mut Validator)
27ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
28Call validate_metadata(&ValidatorMetadata)
29Ret
}
public(friend) update_next_epoch_primary_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call ascii::string(vector<u8>): String
12Call string::from_ascii(String): String
13Call option::some<String>(String): Option<String>
14CopyLoc[0](Arg0: &mut Validator)
15MutBorrowField[6](Validator.metadata: ValidatorMetadata)
16MutBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
17WriteRef
18MoveLoc[0](Arg0: &mut Validator)
19ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
20Call validate_metadata(&ValidatorMetadata)
21Ret
}
public(friend) update_candidate_primary_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9ImmBorrowLoc[1](Arg1: vector<u8>)
10VecLen(42)
11LdConst[18](u64: 256)
12Le
13BrFalse(15)
B4:
14Branch(19)
B5:
15MoveLoc[0](Arg0: &mut Validator)
16Pop
17LdConst[9](u64: 9)
18Abort
B6:
19MoveLoc[1](Arg1: vector<u8>)
20Call ascii::string(vector<u8>): String
21Call string::from_ascii(String): String
22CopyLoc[0](Arg0: &mut Validator)
23MutBorrowField[6](Validator.metadata: ValidatorMetadata)
24MutBorrowField[14](ValidatorMetadata.primary_address: String)
25WriteRef
26MoveLoc[0](Arg0: &mut Validator)
27ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
28Call validate_metadata(&ValidatorMetadata)
29Ret
}
public(friend) update_next_epoch_worker_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdConst[18](u64: 256)
3Le
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[9](u64: 9)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call ascii::string(vector<u8>): String
12Call string::from_ascii(String): String
13Call option::some<String>(String): Option<String>
14CopyLoc[0](Arg0: &mut Validator)
15MutBorrowField[6](Validator.metadata: ValidatorMetadata)
16MutBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
17WriteRef
18MoveLoc[0](Arg0: &mut Validator)
19ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
20Call validate_metadata(&ValidatorMetadata)
21Ret
}
public(friend) update_candidate_worker_address(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9ImmBorrowLoc[1](Arg1: vector<u8>)
10VecLen(42)
11LdConst[18](u64: 256)
12Le
13BrFalse(15)
B4:
14Branch(19)
B5:
15MoveLoc[0](Arg0: &mut Validator)
16Pop
17LdConst[9](u64: 9)
18Abort
B6:
19MoveLoc[1](Arg1: vector<u8>)
20Call ascii::string(vector<u8>): String
21Call string::from_ascii(String): String
22CopyLoc[0](Arg0: &mut Validator)
23MutBorrowField[6](Validator.metadata: ValidatorMetadata)
24MutBorrowField[15](ValidatorMetadata.worker_address: String)
25WriteRef
26MoveLoc[0](Arg0: &mut Validator)
27ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
28Call validate_metadata(&ValidatorMetadata)
29Ret
}
public(friend) update_next_epoch_protocol_pubkey(Arg0: &mut Validator, Arg1: vector<u8>, Arg2: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(42)
2LdU64(96)
3Eq
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Validator)
7Pop
8LdConst[16](u64: 16)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11Call option::some<vector<u8>>(vector<u8>): Option<vector<u8>>
12CopyLoc[0](Arg0: &mut Validator)
13MutBorrowField[6](Validator.metadata: ValidatorMetadata)
14MutBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
15WriteRef
16MoveLoc[2](Arg2: vector<u8>)
17Call option::some<vector<u8>>(vector<u8>): Option<vector<u8>>
18CopyLoc[0](Arg0: &mut Validator)
19MutBorrowField[6](Validator.metadata: ValidatorMetadata)
20MutBorrowField[25](ValidatorMetadata.next_epoch_proof_of_possession: Option<vector<u8>>)
21WriteRef
22MoveLoc[0](Arg0: &mut Validator)
23ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
24Call validate_metadata(&ValidatorMetadata)
25Ret
}
public(friend) update_candidate_protocol_pubkey(Arg0: &mut Validator, Arg1: vector<u8>, Arg2: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9ImmBorrowLoc[1](Arg1: vector<u8>)
10VecLen(42)
11LdU64(96)
12Eq
13BrFalse(15)
B4:
14Branch(19)
B5:
15MoveLoc[0](Arg0: &mut Validator)
16Pop
17LdConst[16](u64: 16)
18Abort
B6:
19MoveLoc[1](Arg1: vector<u8>)
20CopyLoc[0](Arg0: &mut Validator)
21MutBorrowField[6](Validator.metadata: ValidatorMetadata)
22MutBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
23WriteRef
24MoveLoc[2](Arg2: vector<u8>)
25CopyLoc[0](Arg0: &mut Validator)
26MutBorrowField[6](Validator.metadata: ValidatorMetadata)
27MutBorrowField[17](ValidatorMetadata.proof_of_possession: vector<u8>)
28WriteRef
29MoveLoc[0](Arg0: &mut Validator)
30ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
31Call validate_metadata(&ValidatorMetadata)
32Ret
}
public(friend) update_next_epoch_network_pubkey(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0MoveLoc[1](Arg1: vector<u8>)
1Call option::some<vector<u8>>(vector<u8>): Option<vector<u8>>
2CopyLoc[0](Arg0: &mut Validator)
3MutBorrowField[6](Validator.metadata: ValidatorMetadata)
4MutBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
5WriteRef
6MoveLoc[0](Arg0: &mut Validator)
7ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
8Call validate_metadata(&ValidatorMetadata)
9Ret
}
public(friend) update_candidate_network_pubkey(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9MoveLoc[1](Arg1: vector<u8>)
10CopyLoc[0](Arg0: &mut Validator)
11MutBorrowField[6](Validator.metadata: ValidatorMetadata)
12MutBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
13WriteRef
14MoveLoc[0](Arg0: &mut Validator)
15ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
16Call validate_metadata(&ValidatorMetadata)
17Ret
}
public(friend) update_next_epoch_worker_pubkey(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0MoveLoc[1](Arg1: vector<u8>)
1Call option::some<vector<u8>>(vector<u8>): Option<vector<u8>>
2CopyLoc[0](Arg0: &mut Validator)
3MutBorrowField[6](Validator.metadata: ValidatorMetadata)
4MutBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
5WriteRef
6MoveLoc[0](Arg0: &mut Validator)
7ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
8Call validate_metadata(&ValidatorMetadata)
9Ret
}
public(friend) update_candidate_worker_pubkey(Arg0: &mut Validator, Arg1: vector<u8>) {
B0:
0CopyLoc[0](Arg0: &mut Validator)
1FreezeRef
2Call is_preactive(&Validator): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Validator)
6Pop
7LdConst[10](u64: 10)
8Abort
B3:
9MoveLoc[1](Arg1: vector<u8>)
10CopyLoc[0](Arg0: &mut Validator)
11MutBorrowField[6](Validator.metadata: ValidatorMetadata)
12MutBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
13WriteRef
14MoveLoc[0](Arg0: &mut Validator)
15ImmBorrowField[6](Validator.metadata: ValidatorMetadata)
16Call validate_metadata(&ValidatorMetadata)
17Ret
}
public(friend) effectuate_staged_metadata(Arg0: &mut Validator) {
L1: loc0: &mut Option<String>
L2: loc1: &mut Option<String>
L3: loc2: &mut Option<vector<u8>>
L4: loc3: &mut Option<vector<u8>>
L5: loc4: &mut Option<vector<u8>>
L6: loc5: &mut Option<String>
L7: loc6: &mut Option<String>
B0:
0CopyLoc[0](Arg0: &mut Validator)
1MutBorrowField[6](Validator.metadata: ValidatorMetadata)
2MutBorrowField[20](ValidatorMetadata.next_epoch_net_address: Option<String>)
3StLoc[1](loc0: &mut Option<String>)
4CopyLoc[1](loc0: &mut Option<String>)
5FreezeRef
6Call option::is_some<String>(&Option<String>): bool
7BrFalse(15)
B1:
8MoveLoc[1](loc0: &mut Option<String>)
9Call option::extract<String>(&mut Option<String>): String
10CopyLoc[0](Arg0: &mut Validator)
11MutBorrowField[6](Validator.metadata: ValidatorMetadata)
12MutBorrowField[12](ValidatorMetadata.net_address: String)
13WriteRef
14Branch(17)
B2:
15MoveLoc[1](loc0: &mut Option<String>)
16Pop
B3:
17CopyLoc[0](Arg0: &mut Validator)
18MutBorrowField[6](Validator.metadata: ValidatorMetadata)
19MutBorrowField[21](ValidatorMetadata.next_epoch_p2p_address: Option<String>)
20StLoc[6](loc5: &mut Option<String>)
21CopyLoc[6](loc5: &mut Option<String>)
22FreezeRef
23Call option::is_some<String>(&Option<String>): bool
24BrFalse(32)
B4:
25MoveLoc[6](loc5: &mut Option<String>)
26Call option::extract<String>(&mut Option<String>): String
27CopyLoc[0](Arg0: &mut Validator)
28MutBorrowField[6](Validator.metadata: ValidatorMetadata)
29MutBorrowField[13](ValidatorMetadata.p2p_address: String)
30WriteRef
31Branch(34)
B5:
32MoveLoc[6](loc5: &mut Option<String>)
33Pop
B6:
34CopyLoc[0](Arg0: &mut Validator)
35MutBorrowField[6](Validator.metadata: ValidatorMetadata)
36MutBorrowField[22](ValidatorMetadata.next_epoch_primary_address: Option<String>)
37StLoc[7](loc6: &mut Option<String>)
38CopyLoc[7](loc6: &mut Option<String>)
39FreezeRef
40Call option::is_some<String>(&Option<String>): bool
41BrFalse(49)
B7:
42MoveLoc[7](loc6: &mut Option<String>)
43Call option::extract<String>(&mut Option<String>): String
44CopyLoc[0](Arg0: &mut Validator)
45MutBorrowField[6](Validator.metadata: ValidatorMetadata)
46MutBorrowField[14](ValidatorMetadata.primary_address: String)
47WriteRef
48Branch(51)
B8:
49MoveLoc[7](loc6: &mut Option<String>)
50Pop
B9:
51CopyLoc[0](Arg0: &mut Validator)
52MutBorrowField[6](Validator.metadata: ValidatorMetadata)
53MutBorrowField[23](ValidatorMetadata.next_epoch_worker_address: Option<String>)
54StLoc[2](loc1: &mut Option<String>)
55CopyLoc[2](loc1: &mut Option<String>)
56FreezeRef
57Call option::is_some<String>(&Option<String>): bool
58BrFalse(66)
B10:
59MoveLoc[2](loc1: &mut Option<String>)
60Call option::extract<String>(&mut Option<String>): String
61CopyLoc[0](Arg0: &mut Validator)
62MutBorrowField[6](Validator.metadata: ValidatorMetadata)
63MutBorrowField[15](ValidatorMetadata.worker_address: String)
64WriteRef
65Branch(68)
B11:
66MoveLoc[2](loc1: &mut Option<String>)
67Pop
B12:
68CopyLoc[0](Arg0: &mut Validator)
69MutBorrowField[6](Validator.metadata: ValidatorMetadata)
70MutBorrowField[24](ValidatorMetadata.next_epoch_protocol_pubkey_bytes: Option<vector<u8>>)
71StLoc[3](loc2: &mut Option<vector<u8>>)
72CopyLoc[3](loc2: &mut Option<vector<u8>>)
73FreezeRef
74Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
75BrFalse(91)
B13:
76MoveLoc[3](loc2: &mut Option<vector<u8>>)
77Call option::extract<vector<u8>>(&mut Option<vector<u8>>): vector<u8>
78CopyLoc[0](Arg0: &mut Validator)
79MutBorrowField[6](Validator.metadata: ValidatorMetadata)
80MutBorrowField[16](ValidatorMetadata.protocol_pubkey_bytes: vector<u8>)
81WriteRef
82CopyLoc[0](Arg0: &mut Validator)
83MutBorrowField[6](Validator.metadata: ValidatorMetadata)
84MutBorrowField[25](ValidatorMetadata.next_epoch_proof_of_possession: Option<vector<u8>>)
85Call option::extract<vector<u8>>(&mut Option<vector<u8>>): vector<u8>
86CopyLoc[0](Arg0: &mut Validator)
87MutBorrowField[6](Validator.metadata: ValidatorMetadata)
88MutBorrowField[17](ValidatorMetadata.proof_of_possession: vector<u8>)
89WriteRef
90Branch(93)
B14:
91MoveLoc[3](loc2: &mut Option<vector<u8>>)
92Pop
B15:
93CopyLoc[0](Arg0: &mut Validator)
94MutBorrowField[6](Validator.metadata: ValidatorMetadata)
95MutBorrowField[26](ValidatorMetadata.next_epoch_network_pubkey_bytes: Option<vector<u8>>)
96StLoc[4](loc3: &mut Option<vector<u8>>)
97CopyLoc[4](loc3: &mut Option<vector<u8>>)
98FreezeRef
99Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
100BrFalse(108)
B16:
101MoveLoc[4](loc3: &mut Option<vector<u8>>)
102Call option::extract<vector<u8>>(&mut Option<vector<u8>>): vector<u8>
103CopyLoc[0](Arg0: &mut Validator)
104MutBorrowField[6](Validator.metadata: ValidatorMetadata)
105MutBorrowField[18](ValidatorMetadata.network_pubkey_bytes: vector<u8>)
106WriteRef
107Branch(110)
B17:
108MoveLoc[4](loc3: &mut Option<vector<u8>>)
109Pop
B18:
110CopyLoc[0](Arg0: &mut Validator)
111MutBorrowField[6](Validator.metadata: ValidatorMetadata)
112MutBorrowField[27](ValidatorMetadata.next_epoch_worker_pubkey_bytes: Option<vector<u8>>)
113StLoc[5](loc4: &mut Option<vector<u8>>)
114CopyLoc[5](loc4: &mut Option<vector<u8>>)
115FreezeRef
116Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
117BrFalse(125)
B19:
118MoveLoc[5](loc4: &mut Option<vector<u8>>)
119Call option::extract<vector<u8>>(&mut Option<vector<u8>>): vector<u8>
120MoveLoc[0](Arg0: &mut Validator)
121MutBorrowField[6](Validator.metadata: ValidatorMetadata)
122MutBorrowField[19](ValidatorMetadata.worker_pubkey_bytes: vector<u8>)
123WriteRef
124Branch(129)
B20:
125MoveLoc[0](Arg0: &mut Validator)
126Pop
127MoveLoc[5](loc4: &mut Option<vector<u8>>)
128Pop
B21:
129Ret
}
public validate_metadata(Arg0: &ValidatorMetadata) {
B0:
0MoveLoc[0](Arg0: &ValidatorMetadata)
1Call bcs::to_bytes<ValidatorMetadata>(&ValidatorMetadata): vector<u8>
2Call validate_metadata_bcs(vector<u8>)
3Ret
}
native public validate_metadata_bcs(Arg0: vector<u8>);
public(friend) get_staking_pool_ref(Arg0: &Validator): &StakingPool {
B0:
0MoveLoc[0](Arg0: &Validator)
1ImmBorrowField[0](Validator.staking_pool: StakingPool)
2Ret
}
new_from_metadata(Arg0: ValidatorMetadata, Arg1: u64, Arg2: u64, Arg3: &mut TxContext): Validator {
L4: loc0: ID
L5: loc1: StakingPool
L6: loc2: address
B0:
0ImmBorrowLoc[0](Arg0: ValidatorMetadata)
1ImmBorrowField[7](ValidatorMetadata.sui_address: address)
2ReadRef
3StLoc[6](loc2: address)
4CopyLoc[3](Arg3: &mut TxContext)
5Call staking_pool::new(&mut TxContext): StakingPool
6StLoc[5](loc1: StakingPool)
7MoveLoc[6](loc2: address)
8CopyLoc[3](Arg3: &mut TxContext)
9Call validator_cap::new_unverified_validator_operation_cap_and_transfer(address, &mut TxContext): ID
10StLoc[4](loc0: ID)
11MoveLoc[0](Arg0: ValidatorMetadata)
12LdU64(0)
13MoveLoc[4](loc0: ID)
14CopyLoc[1](Arg1: u64)
15MoveLoc[5](loc1: StakingPool)
16CopyLoc[2](Arg2: u64)
17LdU64(0)
18MoveLoc[1](Arg1: u64)
19MoveLoc[2](Arg2: u64)
20MoveLoc[3](Arg3: &mut TxContext)
21Call bag::new(&mut TxContext): Bag
22Pack[1](Validator)
23Ret
}
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
4 => u64: 4
5 => u64: 5
6 => u64: 6
7 => u64: 7
8 => u64: 8
9 => u64: 9
10 => u64: 10
11 => u64: 11
12 => u64: 12
13 => u64: 100
14 => u64: 101
15 => u64: 102
16 => u64: 16
17 => u64: 2000
18 => u64: 256
19 => u64: 100000
]
}