Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

validator_wrapper

Module0x0000…0003
Move path
0x0000…0003::validator_wrapper
Functions
50 public, 0 entry
Structs
1
Friend modules
validator_set
validator_wrapper

Bytecode70 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module 3.validator_wrapper {
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::versioned;
use 0000000000000000000000000000000000000000000000000000000000000003::validator;
 
struct ValidatorWrapper has store {
inner: Versioned
}
 
public(friend) create_v1(Arg0: Validator, Arg1: &mut TxContext): ValidatorWrapper {
B0:
0LdU64(1)
1MoveLoc[0](Arg0: Validator)
2MoveLoc[1](Arg1: &mut TxContext)
3Call versioned::create<Validator>(u64, Validator, &mut TxContext): Versioned
4Pack[0](ValidatorWrapper)
5Ret
}
 
public(friend) load_validator_maybe_upgrade(Arg0: &mut ValidatorWrapper): &mut Validator {
B0:
0CopyLoc[0](Arg0: &mut ValidatorWrapper)
1FreezeRef
2Call upgrade_to_latest(&ValidatorWrapper)
3MoveLoc[0](Arg0: &mut ValidatorWrapper)
4MutBorrowField[0](ValidatorWrapper.inner: Versioned)
5Call versioned::load_value_mut<Validator>(&mut Versioned): &mut Validator
6Ret
}
 
public(friend) destroy(Arg0: ValidatorWrapper): Validator {
B0:
0ImmBorrowLoc[0](Arg0: ValidatorWrapper)
1Call upgrade_to_latest(&ValidatorWrapper)
2MoveLoc[0](Arg0: ValidatorWrapper)
3Unpack[0](ValidatorWrapper)
4Call versioned::destroy<Validator>(Versioned): Validator
5Ret
}
 
upgrade_to_latest(Arg0: &ValidatorWrapper) {
B0:
0MoveLoc[0](Arg0: &ValidatorWrapper)
1Call version(&ValidatorWrapper): u64
2LdU64(1)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[0](u64: 0)
7Abort
B3:
8Ret
}
 
version(Arg0: &ValidatorWrapper): u64 {
B0:
0MoveLoc[0](Arg0: &ValidatorWrapper)
1ImmBorrowField[0](ValidatorWrapper.inner: Versioned)
2Call versioned::version(&Versioned): u64
3Ret
}
 
Constants [
0 => u64: 0
]
}