Documentation
¶
Index ¶
- Constants
- Variables
- func AdvanceTimeTo(backend *Backend, parentState state.Chain, newChainTime time.Time) (bool, error)
- func GetMaxWeight(chainState state.Chain, validator *state.Staker, startTime time.Time, ...) (uint64, error)
- func GetRewardsCalculator(backend *Backend, parentState state.Chain, subnetID ids.ID) (reward.Calculator, error)
- func GetTransformSubnetTx(chain state.Chain, subnetID ids.ID) (*txs.TransformSubnetTx, error)
- func GetValidator(state state.Chain, subnetID ids.ID, nodeID ids.NodeID) (*state.Staker, error)
- func VerifyNewChainTime(newChainTime, nextStakerChangeTime, now time.Time) error
- func VerifyWarpMessages(ctx context.Context, networkID uint32, validatorState validators.State, ...) error
- type AtomicTxExecutor
- func (*AtomicTxExecutor) AddDelegatorTx(*txs.AddDelegatorTx) error
- func (*AtomicTxExecutor) AddPermissionlessDelegatorTx(*txs.AddPermissionlessDelegatorTx) error
- func (*AtomicTxExecutor) AddPermissionlessValidatorTx(*txs.AddPermissionlessValidatorTx) error
- func (*AtomicTxExecutor) AddSubnetValidatorTx(*txs.AddSubnetValidatorTx) error
- func (*AtomicTxExecutor) AddValidatorTx(*txs.AddValidatorTx) error
- func (*AtomicTxExecutor) AdvanceTimeTx(*txs.AdvanceTimeTx) error
- func (*AtomicTxExecutor) BaseTx(*txs.BaseTx) error
- func (*AtomicTxExecutor) CreateChainTx(*txs.CreateChainTx) error
- func (*AtomicTxExecutor) CreateSubnetTx(*txs.CreateSubnetTx) error
- func (e *AtomicTxExecutor) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
- func (e *AtomicTxExecutor) ExportTx(tx *txs.ExportTx) error
- func (e *AtomicTxExecutor) ImportTx(tx *txs.ImportTx) error
- func (e *AtomicTxExecutor) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
- func (e *AtomicTxExecutor) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
- func (*AtomicTxExecutor) RemoveSubnetValidatorTx(*txs.RemoveSubnetValidatorTx) error
- func (*AtomicTxExecutor) RewardValidatorTx(*txs.RewardValidatorTx) error
- func (e *AtomicTxExecutor) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
- func (*AtomicTxExecutor) TransferSubnetOwnershipTx(*txs.TransferSubnetOwnershipTx) error
- func (*AtomicTxExecutor) TransformSubnetTx(*txs.TransformSubnetTx) error
- type Backend
- type MempoolTxVerifier
- func (v *MempoolTxVerifier) AddDelegatorTx(tx *txs.AddDelegatorTx) error
- func (v *MempoolTxVerifier) AddPermissionlessDelegatorTx(tx *txs.AddPermissionlessDelegatorTx) error
- func (v *MempoolTxVerifier) AddPermissionlessValidatorTx(tx *txs.AddPermissionlessValidatorTx) error
- func (v *MempoolTxVerifier) AddSubnetValidatorTx(tx *txs.AddSubnetValidatorTx) error
- func (v *MempoolTxVerifier) AddValidatorTx(tx *txs.AddValidatorTx) error
- func (*MempoolTxVerifier) AdvanceTimeTx(*txs.AdvanceTimeTx) error
- func (v *MempoolTxVerifier) BaseTx(tx *txs.BaseTx) error
- func (v *MempoolTxVerifier) CreateChainTx(tx *txs.CreateChainTx) error
- func (v *MempoolTxVerifier) CreateSubnetTx(tx *txs.CreateSubnetTx) error
- func (v *MempoolTxVerifier) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
- func (v *MempoolTxVerifier) ExportTx(tx *txs.ExportTx) error
- func (v *MempoolTxVerifier) ImportTx(tx *txs.ImportTx) error
- func (v *MempoolTxVerifier) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
- func (v *MempoolTxVerifier) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
- func (v *MempoolTxVerifier) RemoveSubnetValidatorTx(tx *txs.RemoveSubnetValidatorTx) error
- func (*MempoolTxVerifier) RewardValidatorTx(*txs.RewardValidatorTx) error
- func (v *MempoolTxVerifier) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
- func (v *MempoolTxVerifier) TransferSubnetOwnershipTx(tx *txs.TransferSubnetOwnershipTx) error
- func (v *MempoolTxVerifier) TransformSubnetTx(tx *txs.TransformSubnetTx) error
- type ProposalTxExecutor
- func (e *ProposalTxExecutor) AddDelegatorTx(tx *txs.AddDelegatorTx) error
- func (*ProposalTxExecutor) AddPermissionlessDelegatorTx(*txs.AddPermissionlessDelegatorTx) error
- func (*ProposalTxExecutor) AddPermissionlessValidatorTx(*txs.AddPermissionlessValidatorTx) error
- func (e *ProposalTxExecutor) AddSubnetValidatorTx(tx *txs.AddSubnetValidatorTx) error
- func (e *ProposalTxExecutor) AddValidatorTx(tx *txs.AddValidatorTx) error
- func (e *ProposalTxExecutor) AdvanceTimeTx(tx *txs.AdvanceTimeTx) error
- func (*ProposalTxExecutor) BaseTx(*txs.BaseTx) error
- func (*ProposalTxExecutor) CreateChainTx(*txs.CreateChainTx) error
- func (*ProposalTxExecutor) CreateSubnetTx(*txs.CreateSubnetTx) error
- func (e *ProposalTxExecutor) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
- func (*ProposalTxExecutor) ExportTx(*txs.ExportTx) error
- func (*ProposalTxExecutor) ImportTx(*txs.ImportTx) error
- func (e *ProposalTxExecutor) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
- func (e *ProposalTxExecutor) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
- func (*ProposalTxExecutor) RemoveSubnetValidatorTx(*txs.RemoveSubnetValidatorTx) error
- func (e *ProposalTxExecutor) RewardValidatorTx(tx *txs.RewardValidatorTx) error
- func (e *ProposalTxExecutor) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
- func (*ProposalTxExecutor) TransferSubnetOwnershipTx(*txs.TransferSubnetOwnershipTx) error
- func (*ProposalTxExecutor) TransformSubnetTx(*txs.TransformSubnetTx) error
- type SharedMemory
- type StandardTxExecutor
- func (e *StandardTxExecutor) AddDelegatorTx(tx *txs.AddDelegatorTx) error
- func (e *StandardTxExecutor) AddPermissionlessDelegatorTx(tx *txs.AddPermissionlessDelegatorTx) error
- func (e *StandardTxExecutor) AddPermissionlessValidatorTx(tx *txs.AddPermissionlessValidatorTx) error
- func (e *StandardTxExecutor) AddSubnetValidatorTx(tx *txs.AddSubnetValidatorTx) error
- func (e *StandardTxExecutor) AddValidatorTx(tx *txs.AddValidatorTx) error
- func (*StandardTxExecutor) AdvanceTimeTx(*txs.AdvanceTimeTx) error
- func (e *StandardTxExecutor) BaseTx(tx *txs.BaseTx) error
- func (e *StandardTxExecutor) CreateChainTx(tx *txs.CreateChainTx) error
- func (e *StandardTxExecutor) CreateSubnetTx(tx *txs.CreateSubnetTx) error
- func (e *StandardTxExecutor) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
- func (e *StandardTxExecutor) ExportTx(tx *txs.ExportTx) error
- func (e *StandardTxExecutor) ImportTx(tx *txs.ImportTx) error
- func (e *StandardTxExecutor) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
- func (e *StandardTxExecutor) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
- func (e *StandardTxExecutor) RemoveSubnetValidatorTx(tx *txs.RemoveSubnetValidatorTx) error
- func (*StandardTxExecutor) RewardValidatorTx(*txs.RewardValidatorTx) error
- func (e *StandardTxExecutor) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
- func (e *StandardTxExecutor) TransferSubnetOwnershipTx(tx *txs.TransferSubnetOwnershipTx) error
- func (e *StandardTxExecutor) TransformSubnetTx(tx *txs.TransformSubnetTx) error
Constants ¶
const ( // Maximum future start time for staking/delegating MaxFutureStartTime = 24 * 7 * 2 * time.Hour // SyncBound is the synchrony bound used for safe decision making SyncBound = 10 * time.Second MaxValidatorWeightFactor = 5 )
const ( WarpQuorumNumerator = 67 WarpQuorumDenominator = 100 )
Variables ¶
var ( ErrRemoveStakerTooEarly = errors.New("attempting to remove staker before their end time") ErrRemoveWrongStaker = errors.New("attempting to remove wrong staker") ErrChildBlockNotAfterParent = errors.New("proposed timestamp not after current chain time") ErrInvalidState = errors.New("generated output isn't valid state") ErrShouldBePermissionlessStaker = errors.New("expected permissionless staker") ErrWrongTxType = errors.New("wrong transaction type") ErrInvalidID = errors.New("invalid ID") ErrProposedAddStakerTxAfterBanff = errors.New("staker transaction proposed after Banff") ErrAdvanceTimeTxIssuedAfterBanff = errors.New("AdvanceTimeTx issued after Banff") )
var ( ErrWeightTooSmall = errors.New("weight of this validator is too low") ErrWeightTooLarge = errors.New("weight of this validator is too large") ErrInsufficientDelegationFee = errors.New("staker charges an insufficient delegation fee") ErrStakeTooShort = errors.New("staking period is too short") ErrStakeTooLong = errors.New("staking period is too long") ErrFlowCheckFailed = errors.New("flow check failed") ErrNotValidator = errors.New("isn't a current or pending validator") ErrRemovePermissionlessValidator = errors.New("attempting to remove permissionless validator") ErrStakeOverflow = errors.New("validator stake exceeds limit") ErrPeriodMismatch = errors.New("proposed staking period is not inside dependant staking period") ErrOverDelegated = errors.New("validator would be over delegated") ErrIsNotTransformSubnetTx = errors.New("is not a transform subnet tx") ErrTimestampNotBeforeStartTime = errors.New("chain timestamp not before start time") ErrAlreadyValidator = errors.New("already a validator") ErrDuplicateValidator = errors.New("duplicate validator") ErrDelegateToPermissionedValidator = errors.New("delegation to permissioned validator") ErrWrongStakedAssetID = errors.New("incorrect staked assetID") ErrDurangoUpgradeNotActive = errors.New("attempting to use a Durango-upgrade feature prior to activation") ErrAddValidatorTxPostDurango = errors.New("AddValidatorTx is not permitted post-Durango") ErrAddDelegatorTxPostDurango = errors.New("AddDelegatorTx is not permitted post-Durango") )
var ( ErrChildBlockAfterStakerChangeTime = errors.New("proposed timestamp later than next staker change time") ErrChildBlockBeyondSyncBound = errors.New("proposed timestamp is too far in the future relative to local time") )
Functions ¶
func AdvanceTimeTo ¶
func AdvanceTimeTo( backend *Backend, parentState state.Chain, newChainTime time.Time, ) (bool, error)
AdvanceTimeTo applies all state changes to [parentState] resulting from advancing the chain time to [newChainTime]. Returns true iff the validator set changed.
func GetMaxWeight ¶
func GetMaxWeight( chainState state.Chain, validator *state.Staker, startTime time.Time, endTime time.Time, ) (uint64, error)
GetMaxWeight returns the maximum total weight of the [validator], including its own weight, between [startTime] and [endTime]. The weight changes are applied in the order they will be applied as chain time advances. Invariant: - [validator.StartTime] <= [startTime] < [endTime] <= [validator.EndTime]
func GetRewardsCalculator ¶
func GetTransformSubnetTx ¶
func GetValidator ¶
GetValidator returns information about the given validator, which may be a current validator or pending validator.
func VerifyNewChainTime ¶
VerifyNewChainTime returns nil if the [newChainTime] is a valid chain time given the wall clock time ([now]) and when the next staking set change occurs ([nextStakerChangeTime]). Requires:
- [newChainTime] <= [nextStakerChangeTime]: so that no staking set changes are skipped.
- [newChainTime] <= [now] + SyncBound: to ensure chain time approximates "real" time.
func VerifyWarpMessages ¶
func VerifyWarpMessages( ctx context.Context, networkID uint32, validatorState validators.State, pChainHeight uint64, tx txs.UnsignedTx, ) error
VerifyWarpMessages verifies all warp messages in the tx. If any of the warp messages are invalid, an error is returned.
Types ¶
type AtomicTxExecutor ¶ added in v1.1.11
type AtomicTxExecutor struct {
// inputs, to be filled before visitor methods are called
*Backend
ParentID ids.ID
StateVersions state.Versions
Tx *txs.Tx
// outputs of visitor execution
OnAccept state.Diff
Inputs set.Set[ids.ID]
AtomicRequests map[ids.ID]*atomic.Requests
}
atomicTxExecutor is used to execute atomic transactions pre-AP5. After AP5 the execution was moved to be performed inside of the standardTxExecutor.
func (*AtomicTxExecutor) AddDelegatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) AddDelegatorTx(*txs.AddDelegatorTx) error
func (*AtomicTxExecutor) AddPermissionlessDelegatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) AddPermissionlessDelegatorTx(*txs.AddPermissionlessDelegatorTx) error
func (*AtomicTxExecutor) AddPermissionlessValidatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) AddPermissionlessValidatorTx(*txs.AddPermissionlessValidatorTx) error
func (*AtomicTxExecutor) AddSubnetValidatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) AddSubnetValidatorTx(*txs.AddSubnetValidatorTx) error
func (*AtomicTxExecutor) AddValidatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) AddValidatorTx(*txs.AddValidatorTx) error
func (*AtomicTxExecutor) AdvanceTimeTx ¶ added in v1.1.11
func (*AtomicTxExecutor) AdvanceTimeTx(*txs.AdvanceTimeTx) error
func (*AtomicTxExecutor) BaseTx ¶ added in v1.1.11
func (*AtomicTxExecutor) BaseTx(*txs.BaseTx) error
func (*AtomicTxExecutor) CreateChainTx ¶ added in v1.1.11
func (*AtomicTxExecutor) CreateChainTx(*txs.CreateChainTx) error
func (*AtomicTxExecutor) CreateSubnetTx ¶ added in v1.1.11
func (*AtomicTxExecutor) CreateSubnetTx(*txs.CreateSubnetTx) error
func (*AtomicTxExecutor) DisableL1ValidatorTx ¶ added in v1.11.14
func (e *AtomicTxExecutor) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
DisableL1ValidatorTx handles L1 validator disabling
func (*AtomicTxExecutor) ExportTx ¶ added in v1.1.11
func (e *AtomicTxExecutor) ExportTx(tx *txs.ExportTx) error
func (*AtomicTxExecutor) ImportTx ¶ added in v1.1.11
func (e *AtomicTxExecutor) ImportTx(tx *txs.ImportTx) error
func (*AtomicTxExecutor) IncreaseL1ValidatorBalanceTx ¶ added in v1.11.14
func (e *AtomicTxExecutor) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
IncreaseL1ValidatorBalanceTx handles L1 validator balance increase
func (*AtomicTxExecutor) RegisterL1ValidatorTx ¶ added in v1.11.14
func (e *AtomicTxExecutor) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
RegisterL1ValidatorTx handles L1 validator registration
func (*AtomicTxExecutor) RemoveSubnetValidatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) RemoveSubnetValidatorTx(*txs.RemoveSubnetValidatorTx) error
func (*AtomicTxExecutor) RewardValidatorTx ¶ added in v1.1.11
func (*AtomicTxExecutor) RewardValidatorTx(*txs.RewardValidatorTx) error
func (*AtomicTxExecutor) SetL1ValidatorWeightTx ¶ added in v1.11.14
func (e *AtomicTxExecutor) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
SetL1ValidatorWeightTx handles L1 validator weight setting
func (*AtomicTxExecutor) TransferSubnetOwnershipTx ¶ added in v1.1.11
func (*AtomicTxExecutor) TransferSubnetOwnershipTx(*txs.TransferSubnetOwnershipTx) error
func (*AtomicTxExecutor) TransformSubnetTx ¶ added in v1.1.11
func (*AtomicTxExecutor) TransformSubnetTx(*txs.TransformSubnetTx) error
type MempoolTxVerifier ¶ added in v1.1.11
func (*MempoolTxVerifier) AddDelegatorTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) AddDelegatorTx(tx *txs.AddDelegatorTx) error
func (*MempoolTxVerifier) AddPermissionlessDelegatorTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) AddPermissionlessDelegatorTx(tx *txs.AddPermissionlessDelegatorTx) error
func (*MempoolTxVerifier) AddPermissionlessValidatorTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) AddPermissionlessValidatorTx(tx *txs.AddPermissionlessValidatorTx) error
func (*MempoolTxVerifier) AddSubnetValidatorTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) AddSubnetValidatorTx(tx *txs.AddSubnetValidatorTx) error
func (*MempoolTxVerifier) AddValidatorTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) AddValidatorTx(tx *txs.AddValidatorTx) error
func (*MempoolTxVerifier) AdvanceTimeTx ¶ added in v1.1.11
func (*MempoolTxVerifier) AdvanceTimeTx(*txs.AdvanceTimeTx) error
func (*MempoolTxVerifier) BaseTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) BaseTx(tx *txs.BaseTx) error
func (*MempoolTxVerifier) CreateChainTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) CreateChainTx(tx *txs.CreateChainTx) error
func (*MempoolTxVerifier) CreateSubnetTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) CreateSubnetTx(tx *txs.CreateSubnetTx) error
func (*MempoolTxVerifier) DisableL1ValidatorTx ¶ added in v1.11.14
func (v *MempoolTxVerifier) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
DisableL1ValidatorTx handles L1 validator disabling
func (*MempoolTxVerifier) ExportTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) ExportTx(tx *txs.ExportTx) error
func (*MempoolTxVerifier) ImportTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) ImportTx(tx *txs.ImportTx) error
func (*MempoolTxVerifier) IncreaseL1ValidatorBalanceTx ¶ added in v1.11.14
func (v *MempoolTxVerifier) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
IncreaseL1ValidatorBalanceTx handles L1 validator balance increase
func (*MempoolTxVerifier) RegisterL1ValidatorTx ¶ added in v1.11.14
func (v *MempoolTxVerifier) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
RegisterL1ValidatorTx handles L1 validator registration
func (*MempoolTxVerifier) RemoveSubnetValidatorTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) RemoveSubnetValidatorTx(tx *txs.RemoveSubnetValidatorTx) error
func (*MempoolTxVerifier) RewardValidatorTx ¶ added in v1.1.11
func (*MempoolTxVerifier) RewardValidatorTx(*txs.RewardValidatorTx) error
func (*MempoolTxVerifier) SetL1ValidatorWeightTx ¶ added in v1.11.14
func (v *MempoolTxVerifier) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
SetL1ValidatorWeightTx handles L1 validator weight setting
func (*MempoolTxVerifier) TransferSubnetOwnershipTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) TransferSubnetOwnershipTx(tx *txs.TransferSubnetOwnershipTx) error
func (*MempoolTxVerifier) TransformSubnetTx ¶ added in v1.1.11
func (v *MempoolTxVerifier) TransformSubnetTx(tx *txs.TransformSubnetTx) error
type ProposalTxExecutor ¶ added in v1.1.11
type ProposalTxExecutor struct {
// inputs, to be filled before visitor methods are called
*Backend
Tx *txs.Tx
// [OnCommitState] is the state used for validation.
// [OnCommitState] is modified by this struct's methods to
// reflect changes made to the state if the proposal is committed.
//
// Invariant: Both [OnCommitState] and [OnAbortState] represent the same
// state when provided to this struct.
OnCommitState state.Diff
// [OnAbortState] is modified by this struct's methods to
// reflect changes made to the state if the proposal is aborted.
OnAbortState state.Diff
}
func (*ProposalTxExecutor) AddDelegatorTx ¶ added in v1.1.11
func (e *ProposalTxExecutor) AddDelegatorTx(tx *txs.AddDelegatorTx) error
func (*ProposalTxExecutor) AddPermissionlessDelegatorTx ¶ added in v1.1.11
func (*ProposalTxExecutor) AddPermissionlessDelegatorTx(*txs.AddPermissionlessDelegatorTx) error
func (*ProposalTxExecutor) AddPermissionlessValidatorTx ¶ added in v1.1.11
func (*ProposalTxExecutor) AddPermissionlessValidatorTx(*txs.AddPermissionlessValidatorTx) error
func (*ProposalTxExecutor) AddSubnetValidatorTx ¶ added in v1.1.11
func (e *ProposalTxExecutor) AddSubnetValidatorTx(tx *txs.AddSubnetValidatorTx) error
func (*ProposalTxExecutor) AddValidatorTx ¶ added in v1.1.11
func (e *ProposalTxExecutor) AddValidatorTx(tx *txs.AddValidatorTx) error
func (*ProposalTxExecutor) AdvanceTimeTx ¶ added in v1.1.11
func (e *ProposalTxExecutor) AdvanceTimeTx(tx *txs.AdvanceTimeTx) error
func (*ProposalTxExecutor) BaseTx ¶ added in v1.1.11
func (*ProposalTxExecutor) BaseTx(*txs.BaseTx) error
func (*ProposalTxExecutor) CreateChainTx ¶ added in v1.1.11
func (*ProposalTxExecutor) CreateChainTx(*txs.CreateChainTx) error
func (*ProposalTxExecutor) CreateSubnetTx ¶ added in v1.1.11
func (*ProposalTxExecutor) CreateSubnetTx(*txs.CreateSubnetTx) error
func (*ProposalTxExecutor) DisableL1ValidatorTx ¶ added in v1.11.14
func (e *ProposalTxExecutor) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
DisableL1ValidatorTx handles L1 validator disabling
func (*ProposalTxExecutor) ExportTx ¶ added in v1.1.11
func (*ProposalTxExecutor) ExportTx(*txs.ExportTx) error
func (*ProposalTxExecutor) ImportTx ¶ added in v1.1.11
func (*ProposalTxExecutor) ImportTx(*txs.ImportTx) error
func (*ProposalTxExecutor) IncreaseL1ValidatorBalanceTx ¶ added in v1.11.14
func (e *ProposalTxExecutor) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
IncreaseL1ValidatorBalanceTx handles L1 validator balance increase
func (*ProposalTxExecutor) RegisterL1ValidatorTx ¶ added in v1.11.14
func (e *ProposalTxExecutor) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
RegisterL1ValidatorTx handles L1 validator registration
func (*ProposalTxExecutor) RemoveSubnetValidatorTx ¶ added in v1.1.11
func (*ProposalTxExecutor) RemoveSubnetValidatorTx(*txs.RemoveSubnetValidatorTx) error
func (*ProposalTxExecutor) RewardValidatorTx ¶ added in v1.1.11
func (e *ProposalTxExecutor) RewardValidatorTx(tx *txs.RewardValidatorTx) error
func (*ProposalTxExecutor) SetL1ValidatorWeightTx ¶ added in v1.11.14
func (e *ProposalTxExecutor) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
SetL1ValidatorWeightTx handles L1 validator weight setting
func (*ProposalTxExecutor) TransferSubnetOwnershipTx ¶ added in v1.1.11
func (*ProposalTxExecutor) TransferSubnetOwnershipTx(*txs.TransferSubnetOwnershipTx) error
func (*ProposalTxExecutor) TransformSubnetTx ¶ added in v1.1.11
func (*ProposalTxExecutor) TransformSubnetTx(*txs.TransformSubnetTx) error
type SharedMemory ¶ added in v1.11.14
type SharedMemory interface {
}
SharedMemory provides cross-chain atomic operations
type StandardTxExecutor ¶ added in v1.1.11
type StandardTxExecutor struct {
// inputs, to be filled before visitor methods are called
*Backend
State state.Diff // state is expected to be modified
Tx *txs.Tx
// outputs of visitor execution
OnAccept func() // may be nil
Inputs set.Set[ids.ID]
AtomicRequests map[ids.ID]*atomic.Requests // may be nil
}
func (*StandardTxExecutor) AddDelegatorTx ¶ added in v1.1.11
func (e *StandardTxExecutor) AddDelegatorTx(tx *txs.AddDelegatorTx) error
func (*StandardTxExecutor) AddPermissionlessDelegatorTx ¶ added in v1.1.11
func (e *StandardTxExecutor) AddPermissionlessDelegatorTx(tx *txs.AddPermissionlessDelegatorTx) error
func (*StandardTxExecutor) AddPermissionlessValidatorTx ¶ added in v1.1.11
func (e *StandardTxExecutor) AddPermissionlessValidatorTx(tx *txs.AddPermissionlessValidatorTx) error
func (*StandardTxExecutor) AddSubnetValidatorTx ¶ added in v1.1.11
func (e *StandardTxExecutor) AddSubnetValidatorTx(tx *txs.AddSubnetValidatorTx) error
func (*StandardTxExecutor) AddValidatorTx ¶ added in v1.1.11
func (e *StandardTxExecutor) AddValidatorTx(tx *txs.AddValidatorTx) error
func (*StandardTxExecutor) AdvanceTimeTx ¶ added in v1.1.11
func (*StandardTxExecutor) AdvanceTimeTx(*txs.AdvanceTimeTx) error
func (*StandardTxExecutor) BaseTx ¶ added in v1.1.11
func (e *StandardTxExecutor) BaseTx(tx *txs.BaseTx) error
func (*StandardTxExecutor) CreateChainTx ¶ added in v1.1.11
func (e *StandardTxExecutor) CreateChainTx(tx *txs.CreateChainTx) error
func (*StandardTxExecutor) CreateSubnetTx ¶ added in v1.1.11
func (e *StandardTxExecutor) CreateSubnetTx(tx *txs.CreateSubnetTx) error
func (*StandardTxExecutor) DisableL1ValidatorTx ¶ added in v1.11.14
func (e *StandardTxExecutor) DisableL1ValidatorTx(tx *txs.DisableL1ValidatorTx) error
DisableL1ValidatorTx handles L1 validator disabling
func (*StandardTxExecutor) ExportTx ¶ added in v1.1.11
func (e *StandardTxExecutor) ExportTx(tx *txs.ExportTx) error
func (*StandardTxExecutor) ImportTx ¶ added in v1.1.11
func (e *StandardTxExecutor) ImportTx(tx *txs.ImportTx) error
func (*StandardTxExecutor) IncreaseL1ValidatorBalanceTx ¶ added in v1.11.14
func (e *StandardTxExecutor) IncreaseL1ValidatorBalanceTx(tx *txs.IncreaseL1ValidatorBalanceTx) error
IncreaseL1ValidatorBalanceTx handles L1 validator balance increase
func (*StandardTxExecutor) RegisterL1ValidatorTx ¶ added in v1.11.14
func (e *StandardTxExecutor) RegisterL1ValidatorTx(tx *txs.RegisterL1ValidatorTx) error
RegisterL1ValidatorTx handles L1 validator registration
func (*StandardTxExecutor) RemoveSubnetValidatorTx ¶ added in v1.1.11
func (e *StandardTxExecutor) RemoveSubnetValidatorTx(tx *txs.RemoveSubnetValidatorTx) error
Verifies a *txs.RemoveSubnetValidatorTx and, if it passes, executes it on [e.State]. For verification rules, see [verifyRemoveSubnetValidatorTx]. This transaction will result in [tx.NodeID] being removed as a validator of [tx.SubnetID]. Note: [tx.NodeID] may be either a current or pending validator.
func (*StandardTxExecutor) RewardValidatorTx ¶ added in v1.1.11
func (*StandardTxExecutor) RewardValidatorTx(*txs.RewardValidatorTx) error
func (*StandardTxExecutor) SetL1ValidatorWeightTx ¶ added in v1.11.14
func (e *StandardTxExecutor) SetL1ValidatorWeightTx(tx *txs.SetL1ValidatorWeightTx) error
SetL1ValidatorWeightTx handles L1 validator weight setting
func (*StandardTxExecutor) TransferSubnetOwnershipTx ¶ added in v1.1.11
func (e *StandardTxExecutor) TransferSubnetOwnershipTx(tx *txs.TransferSubnetOwnershipTx) error
Verifies a *txs.TransferSubnetOwnershipTx and, if it passes, executes it on [e.State]. For verification rules, see [verifyTransferSubnetOwnershipTx]. This transaction will result in the ownership of [tx.Subnet] being transferred to [tx.Owner].
func (*StandardTxExecutor) TransformSubnetTx ¶ added in v1.1.11
func (e *StandardTxExecutor) TransformSubnetTx(tx *txs.TransformSubnetTx) error