Documentation
¶
Index ¶
- Constants
- Variables
- func GetPChainSubnetToL1ConversionUnsignedMessage(network network.Network, subnetID ids.ID, managerBlockchainID ids.ID, ...) (*warp.UnsignedMessage, error)
- func GetValidatorManagerType(rpcURL string, managerAddress common.Address) validatormanagertypes.ValidatorManagementType
- func InitializeValidatorsSet(rpcURL string, managerAddress common.Address, privateKey string, ...) (*types.Transaction, *types.Receipt, error)
- func PoAValidatorManagerInitialize(rpcURL string, managerAddress common.Address, privateKey string, ...) (*types.Transaction, *types.Receipt, error)
- func PoSValidatorManagerInitialize(rpcURL string, managerAddress common.Address, ...) (*types.Transaction, *types.Receipt, error)
- func PoSWeightToValue(rpcURL string, managerAddress common.Address, weight uint64) (*big.Int, error)
- type ACP99ValidatorManagerSettings
- type NativeTokenValidatorManagerSettingsV1_0_0
- type NativeTokenValidatorManagerSettingsV2_0_0
- type PoSParams
- type ValidatorManagerSettings
Constants ¶
const ( ValidatorMessagesContractAddress = "0x9C00629cE712B0255b17A4a657171Acd15720B8C" ValidatorContractAddress = "0x0C0DEBA5E0000000000000000000000000000000" ValidatorProxyContractAddress = "0x0FEEDC0DE0000000000000000000000000000000" ValidatorProxyAdminContractAddress = "0xA0AFFE1234567890aBcDEF1234567890AbCdEf34" SpecializationProxyContractAddress = "0x100C0DE1C0FFEE00000000000000000000000000" SpecializationProxyAdminContractAddress = "0x97A35a4A2A8a56256de7A32160819c7B3F4C9DA6" RewardCalculatorAddress = "0x0DEADC0DE0000000000000000000000000000000" DefaultPoSMinimumStakeAmount = 1 DefaultPoSMaximumStakeAmount = 1000 DefaultPoSMinimumStakeDuration = 100 DefaultPoSDMinimumDelegationFee = 1 DefaultPoSMaximumStakeMultiplier = 1 DefaultPoSWeightToValueFactor = 1 )
Variables ¶
var ( ErrDelegatorIneligibleForRewards = fmt.Errorf("delegator ineligible for rewards") ErrInvalidBLSPublicKey = fmt.Errorf("invalid BLS public key") ErrAlreadyInitialized = fmt.Errorf("the contract is already initialized") ErrInvalidMaximumChurnPercentage = fmt.Errorf("unvalid churn percentage") ErrInvalidValidationID = fmt.Errorf("invalid validation id") ErrInvalidValidatorStatus = fmt.Errorf("invalid validator status") ErrMaxChurnRateExceeded = fmt.Errorf("max churn rate exceeded") ErrInvalidInitializationStatus = fmt.Errorf("validators set already initialized") ErrInvalidValidatorManagerBlockchainID = fmt.Errorf("invalid validator manager blockchain ID") ErrInvalidValidatorManagerAddress = fmt.Errorf("invalid validator manager address") ErrNodeAlreadyRegistered = fmt.Errorf("node already registered") ErrInvalidSubnetConversionID = fmt.Errorf("invalid subnet conversion id") ErrInvalidRegistrationExpiry = fmt.Errorf("invalid registration expiry") ErrInvalidBLSKeyLength = fmt.Errorf("invalid BLS key length") ErrInvalidNodeID = fmt.Errorf("invalid node id") ErrInvalidWarpMessage = fmt.Errorf("invalid warp message") ErrInvalidWarpSourceChainID = fmt.Errorf("invalid wapr source chain ID") ErrInvalidWarpOriginSenderAddress = fmt.Errorf("invalid warp origin sender address") ErrInvalidCodecID = fmt.Errorf("invalid codec ID") ErrInvalidConversionID = fmt.Errorf("invalid conversion ID") ErrInvalidDelegationFee = fmt.Errorf("invalid delegation fee") ErrInvalidDelegationID = fmt.Errorf("invalid delegation ID") ErrInvalidDelegatorStatus = fmt.Errorf("invalid delegator status") ErrInvalidMessageLength = fmt.Errorf("invalid message length") ErrInvalidMessageType = fmt.Errorf("invalid message type") ErrInvalidMinStakeDuration = fmt.Errorf("invalid min stake duration") ErrInvalidNonce = fmt.Errorf("invalid nonce") ErrInvalidPChainOwnerThreshold = fmt.Errorf("invalid pchain owner threshold") ErrInvalidStakeAmount = fmt.Errorf("invalid stake amount") ErrInvalidStakeMultiplier = fmt.Errorf("invalid stake multiplier") ErrInvalidTokenAddress = fmt.Errorf("invalid token address") ErrInvalidTotalWeight = fmt.Errorf("invalid total weight") ErrMaxWeightExceeded = fmt.Errorf("max weight exceeded") ErrMinStakeDurationNotPassed = fmt.Errorf("min stake duration not passed") ErrPChainOwnerAddressesNotSorted = fmt.Errorf("pchain owner addresses not sorted") ErrUnexpectedRegistrationStatus = fmt.Errorf("unexpected registration status") ErrValidatorIneligibleForRewards = fmt.Errorf("validator ineligible for rewards") ErrValidatorNotPoS = fmt.Errorf("validator not PoS") ErrZeroWeightToValueFactor = fmt.Errorf("zero weight to value factor") ErrInvalidOwner = fmt.Errorf("invalid proxy or validator owner") ErrorSignatureToError = map[string]error{ "InvalidInitialization()": ErrAlreadyInitialized, "InvalidMaximumChurnPercentage(uint8)": ErrInvalidMaximumChurnPercentage, "InvalidValidationID(bytes32)": ErrInvalidValidationID, "InvalidValidatorStatus(uint8)": ErrInvalidValidatorStatus, "MaxChurnRateExceeded(uint64)": ErrMaxChurnRateExceeded, "InvalidInitializationStatus()": ErrInvalidInitializationStatus, "InvalidValidatorManagerBlockchainID(bytes32)": ErrInvalidValidatorManagerBlockchainID, "InvalidValidatorManagerAddress(address)": ErrInvalidValidatorManagerAddress, "NodeAlreadyRegistered(bytes)": ErrNodeAlreadyRegistered, "InvalidSubnetConversionID(bytes32,bytes32)": ErrInvalidSubnetConversionID, "InvalidRegistrationExpiry(uint64)": ErrInvalidRegistrationExpiry, "InvalidBLSKeyLength(uint256)": ErrInvalidBLSKeyLength, "InvalidNodeID(bytes)": ErrInvalidNodeID, "InvalidWarpMessage()": ErrInvalidWarpMessage, "InvalidWarpSourceChainID(bytes32)": ErrInvalidWarpSourceChainID, "InvalidWarpOriginSenderAddress(address)": ErrInvalidWarpOriginSenderAddress, "DelegatorIneligibleForRewards(bytes32)": ErrDelegatorIneligibleForRewards, "InvalidBLSPublicKey()": ErrInvalidBLSPublicKey, "InvalidCodecID(uint32)": ErrInvalidCodecID, "InvalidConversionID(bytes32,bytes32)": ErrInvalidConversionID, "InvalidDelegationFee(uint16)": ErrInvalidDelegationFee, "InvalidDelegationID(bytes32)": ErrInvalidDelegationID, "InvalidDelegatorStatus(DelegatorStatus)": ErrInvalidDelegatorStatus, "InvalidMessageLength(uint32,uint32)": ErrInvalidMessageLength, "InvalidMessageType()": ErrInvalidMessageType, "InvalidMinStakeDuration(uint64)": ErrInvalidMinStakeDuration, "InvalidNonce(uint64)": ErrInvalidNonce, "InvalidPChainOwnerThreshold(uint256,uint256)": ErrInvalidPChainOwnerThreshold, "InvalidStakeAmount(uint256)": ErrInvalidStakeAmount, "InvalidStakeMultiplier(uint8)": ErrInvalidStakeMultiplier, "InvalidTokenAddress(address)": ErrInvalidTokenAddress, "InvalidTotalWeight(uint256)": ErrInvalidTotalWeight, "MaxWeightExceeded(uint64)": ErrMaxWeightExceeded, "MinStakeDurationNotPassed(uint64)": ErrMinStakeDurationNotPassed, "PChainOwnerAddressesNotSorted()": ErrPChainOwnerAddressesNotSorted, "UnauthorizedOwner(address)": ErrUnauthorizedOwner, "UnexpectedRegistrationStatus(bool)": ErrUnexpectedRegistrationStatus, "ValidatorIneligibleForRewards(bytes32)": ErrValidatorIneligibleForRewards, "ValidatorNotPoS(bytes32)": ErrValidatorNotPoS, "ZeroWeightToValueFactor()": ErrZeroWeightToValueFactor, "OwnableInvalidOwner(address)": ErrInvalidOwner, "OwnableUnauthorizedAccount(address)": ErrUnauthorizedOwner, } )
Functions ¶
func GetValidatorManagerType ¶
func GetValidatorManagerType( rpcURL string, managerAddress common.Address, ) validatormanagertypes.ValidatorManagementType
GetValidatorManagerType returns validatormanagertypes.ProofOfAuthority if validator manager is verified to be Proof of Authority If validator manager is verified to be Proof of Stake, returns validatormanagertypes.ProofOfStake In other cases, returns validatormanagertypes.UndefinedValidatorManagement
func InitializeValidatorsSet ¶
func InitializeValidatorsSet( rpcURL string, managerAddress common.Address, privateKey string, subnetID ids.ID, managerBlockchainID ids.ID, convertSubnetValidators []*txs.ConvertSubnetToL1Validator, subnetConversionSignedMessage *warp.Message, ) (*types.Transaction, *types.Receipt, error)
InitializeValidatorsSet calls poa manager validators set init method, passing to it the p-chain signed [subnetConversionSignedMessage] to verify p-chain already processed the associated ConvertSubnetToL1Tx
func PoAValidatorManagerInitialize ¶
func PoAValidatorManagerInitialize( rpcURL string, managerAddress common.Address, privateKey string, subnetID ids.ID, ownerAddress common.Address, useACP99 bool, ) (*types.Transaction, *types.Receipt, error)
PoAValidatorManagerInitialize initializes contract [managerAddress] at [rpcURL], to manage validators on [subnetID], with owner given by [ownerAddress]
func PoSValidatorManagerInitialize ¶
func PoSValidatorManagerInitialize( rpcURL string, managerAddress common.Address, specializedManagerAddress common.Address, managerOwnerPrivateKey string, privateKey string, subnetID [32]byte, posParams PoSParams, useACP99 bool, ) (*types.Transaction, *types.Receipt, error)
initializes contract [managerAddress] at [rpcURL], to manage validators on [subnetID] using PoS specific settings
Types ¶
type NativeTokenValidatorManagerSettingsV1_0_0 ¶
type NativeTokenValidatorManagerSettingsV1_0_0 struct {
BaseSettings ValidatorManagerSettings
MinimumStakeAmount *big.Int
MaximumStakeAmount *big.Int
MinimumStakeDuration uint64
MinimumDelegationFeeBips uint16
MaximumStakeMultiplier uint8
WeightToValueFactor *big.Int
RewardCalculator common.Address
UptimeBlockchainID [32]byte
}
type NativeTokenValidatorManagerSettingsV2_0_0 ¶
type NativeTokenValidatorManagerSettingsV2_0_0 struct {
Manager common.Address
MinimumStakeAmount *big.Int
MaximumStakeAmount *big.Int
MinimumStakeDuration uint64
MinimumDelegationFeeBips uint16
MaximumStakeMultiplier uint8
WeightToValueFactor *big.Int
RewardCalculator common.Address
UptimeBlockchainID [32]byte
}