pragma solidity ^0.4.24;
contract StructDefineSample {
struct Validator {
// Used to determine the amount of wei the validator holds. To get the actual
// amount of wei, multiply this by the deposit_scale_factor.
uint168 deposit; // : decimal(wei/m),
int128 start_dynasty;
int128 end_dynasty;
bool is_slashed;
uint total_deposits_at_logout; //: wei_value,
// The address which the validator's signatures must verify against
address addr;
address withdrawal_addr;
}
Validator[] _validators;
// To avoid tuple, and it produce same code of vyper compiler.
function validators__deposit(int128 arg0) public view returns (uint) {
return _validators[uint256(arg0)].deposit;
}
function validators__start_dynasty(int128 arg0) public view returns (int128) {
return _validators[uint256(arg0)].start_dynasty;
}
function validators__end_dynasty(int128 arg0) public view returns (int128) {
return _validators[uint256(arg0)].end_dynasty;
}
function validators__is_slashed(int128 arg0) public view returns (bool) {
return _validators[uint256(arg0)].is_slashed;
}
function validators__total_deposits_at_logout(int128 arg0) public view returns (uint) {
return _validators[uint256(arg0)].total_deposits_at_logout;
}
function validators__addr(int128 arg0) public view returns (address) {
return _validators[uint256(arg0)].addr;
}
function validators__withdrawal_addr(int128 arg0) public view returns (address) {
return _validators[uint256(arg0)].withdrawal_addr;
}
}