Documentation ¶
Index ¶
- Variables
- type ClaimHelper
- func (c *ClaimHelper) AgreesWithOutputRoot() bool
- func (c *ClaimHelper) Attack(ctx context.Context, value common.Hash, opts ...MoveOpt) *ClaimHelper
- func (c *ClaimHelper) Defend(ctx context.Context, value common.Hash, opts ...MoveOpt) *ClaimHelper
- func (c *ClaimHelper) Depth() types.Depth
- func (c *ClaimHelper) IsBottomGameRoot(ctx context.Context) bool
- func (c *ClaimHelper) IsMaxDepth(ctx context.Context) bool
- func (c *ClaimHelper) IsOutputRoot(ctx context.Context) bool
- func (c *ClaimHelper) IsOutputRootLeaf(ctx context.Context) bool
- func (c *ClaimHelper) IsRootClaim() bool
- func (c *ClaimHelper) RequireCorrectOutputRoot(ctx context.Context)
- func (c *ClaimHelper) RequireDifferentClaimValue(other *ClaimHelper)
- func (c *ClaimHelper) RequireOnlyCounteredBy(ctx context.Context, expected ...*ClaimHelper)
- func (c *ClaimHelper) WaitForCounterClaim(ctx context.Context, ignoreClaims ...*ClaimHelper) *ClaimHelper
- func (c *ClaimHelper) WaitForCountered(ctx context.Context)
- type ContractClaim
- type DefendClaimOpt
- type DishonestHelper
- type DisputeSystem
- type ErrWithData
- type FactoryHelper
- func (h *FactoryHelper) CreateBisectionGameExtraData(l2Node string, l2BlockNumber uint64, cfg *GameCfg) []byte
- func (h *FactoryHelper) GetL1Head(ctx context.Context, game contracts.FaultDisputeGameContract) eth.BlockID
- func (h *FactoryHelper) PreimageHelper(ctx context.Context) *preimage.Helper
- func (h *FactoryHelper) StartChallenger(ctx context.Context, name string, options ...challenger.Option) *challenger.Helper
- func (h *FactoryHelper) StartOutputAlphabetGame(ctx context.Context, l2Node string, l2BlockNumber uint64, ...) *OutputAlphabetGameHelper
- func (h *FactoryHelper) StartOutputAlphabetGameWithCorrectRoot(ctx context.Context, l2Node string, l2BlockNumber uint64, opts ...GameOpt) *OutputAlphabetGameHelper
- func (h *FactoryHelper) StartOutputCannonGame(ctx context.Context, l2Node string, l2BlockNumber uint64, ...) *OutputCannonGameHelper
- func (h *FactoryHelper) StartOutputCannonGameWithCorrectRoot(ctx context.Context, l2Node string, l2BlockNumber uint64, opts ...GameOpt) *OutputCannonGameHelper
- func (h *FactoryHelper) WaitForBlock(l2Node string, l2BlockNumber uint64, cfg *GameCfg)
- type GameCfg
- type GameOpt
- type MoveOpt
- type Mover
- type OutputAlphabetGameHelper
- func (g *OutputAlphabetGameHelper) CreateDishonestHelper(ctx context.Context, l2Node string, defender bool) *DishonestHelper
- func (g *OutputAlphabetGameHelper) CreateHonestActor(ctx context.Context, l2Node string) *OutputHonestHelper
- func (g *OutputAlphabetGameHelper) StartChallenger(ctx context.Context, l2Node string, name string, options ...challenger.Option) *challenger.Helper
- type OutputCannonGameHelper
- func (g *OutputCannonGameHelper) ChallengeToPreimageLoad(ctx context.Context, outputRootClaim *ClaimHelper, ...)
- func (g *OutputCannonGameHelper) CreateHonestActor(ctx context.Context, l2Node string, options ...challenger.Option) *OutputHonestHelper
- func (g *OutputCannonGameHelper) CreateStepLargePreimageLoadCheck(ctx context.Context, sender common.Address) PreimageLoadCheck
- func (g *OutputCannonGameHelper) CreateStepPreimageLoadCheck(ctx context.Context) PreimageLoadCheck
- func (g *OutputCannonGameHelper) StartChallenger(ctx context.Context, name string, options ...challenger.Option) *challenger.Helper
- func (g *OutputCannonGameHelper) VerifyPreimage(ctx context.Context, outputRootClaim *ClaimHelper, preimageKey preimage.Key)
- type OutputGameHelper
- func (g *OutputGameHelper) Attack(ctx context.Context, claimIdx int64, claim common.Hash, Opts ...MoveOpt)
- func (g *OutputGameHelper) AvailableCredit(ctx context.Context, addr common.Address) *big.Int
- func (g *OutputGameHelper) ChallengeClaim(ctx context.Context, claim *ClaimHelper, performMove Mover, ...)
- func (g *OutputGameHelper) ChallengePeriod(ctx context.Context) uint64
- func (g *OutputGameHelper) ChallengePeriodStartTime(ctx context.Context, sender common.Address, data *types.PreimageOracleData) uint64
- func (g *OutputGameHelper) Credit(ctx context.Context, addr common.Address) *big.Int
- func (g *OutputGameHelper) CreditUnlockDuration(ctx context.Context) time.Duration
- func (g *OutputGameHelper) Defend(ctx context.Context, claimIdx int64, claim common.Hash, Opts ...MoveOpt)
- func (g *OutputGameHelper) DefendClaim(ctx context.Context, claim *ClaimHelper, performMove Mover, ...) *ClaimHelper
- func (g *OutputGameHelper) DisputeBlock(ctx context.Context, disputeBlockNum uint64) *ClaimHelper
- func (g *OutputGameHelper) DisputeLastBlock(ctx context.Context) *ClaimHelper
- func (g *OutputGameHelper) ExecDepth(ctx context.Context) types.Depth
- func (g *OutputGameHelper) GameData(ctx context.Context) string
- func (g *OutputGameHelper) GetClaimValue(ctx context.Context, claimIdx int64) common.Hash
- func (g *OutputGameHelper) GetL1Head(ctx context.Context) eth.BlockID
- func (g *OutputGameHelper) L2BlockNum(ctx context.Context) uint64
- func (g *OutputGameHelper) LogGameData(ctx context.Context)
- func (g *OutputGameHelper) MaxClockDuration(ctx context.Context) time.Duration
- func (g *OutputGameHelper) MaxDepth(ctx context.Context) types.Depth
- func (g *OutputGameHelper) Resolve(ctx context.Context)
- func (g *OutputGameHelper) ResolveClaim(ctx context.Context, claimIdx int64)
- func (g *OutputGameHelper) RootClaim(ctx context.Context) *ClaimHelper
- func (g *OutputGameHelper) SplitDepth(ctx context.Context) types.Depth
- func (g *OutputGameHelper) StartingBlockNum(ctx context.Context) uint64
- func (g *OutputGameHelper) Status(ctx context.Context) gameTypes.GameStatus
- func (g *OutputGameHelper) StepFails(ctx context.Context, claimIdx int64, isAttack bool, stateData []byte, ...)
- func (g *OutputGameHelper) UploadPreimage(ctx context.Context, data *types.PreimageOracleData, ...)
- func (g *OutputGameHelper) WaitForAllClaimsCountered(ctx context.Context)
- func (g *OutputGameHelper) WaitForChallengePeriodStart(ctx context.Context, sender common.Address, data *types.PreimageOracleData)
- func (g *OutputGameHelper) WaitForClaimAtDepth(ctx context.Context, depth types.Depth)
- func (g *OutputGameHelper) WaitForClaimAtMaxDepth(ctx context.Context, countered bool)
- func (g *OutputGameHelper) WaitForClaimCount(ctx context.Context, count int64)
- func (g *OutputGameHelper) WaitForCorrectOutputRoot(ctx context.Context, claimIdx int64)
- func (g *OutputGameHelper) WaitForGameStatus(ctx context.Context, expected gameTypes.GameStatus)
- func (g *OutputGameHelper) WaitForInactivity(ctx context.Context, numInactiveBlocks int, untilGameEnds bool)
- func (g *OutputGameHelper) WaitForL2BlockNumberChallenged(ctx context.Context)
- func (g *OutputGameHelper) WaitForNewClaim(ctx context.Context, checkPoint int64) (int64, error)
- func (g *OutputGameHelper) WaitForNoAvailableCredit(ctx context.Context, addr common.Address)
- func (g *OutputGameHelper) WaitForPreimageInOracle(ctx context.Context, data *types.PreimageOracleData)
- func (g *OutputGameHelper) WethBalance(ctx context.Context, addr common.Address) *big.Int
- type OutputHonestHelper
- func (h *OutputHonestHelper) Attack(ctx context.Context, claimIdx int64, opts ...MoveOpt)
- func (h *OutputHonestHelper) AttackClaim(ctx context.Context, claim *ClaimHelper, opts ...MoveOpt) *ClaimHelper
- func (h *OutputHonestHelper) CounterClaim(ctx context.Context, claim *ClaimHelper, opts ...MoveOpt) *ClaimHelper
- func (h *OutputHonestHelper) Defend(ctx context.Context, claimIdx int64, opts ...MoveOpt)
- func (h *OutputHonestHelper) DefendClaim(ctx context.Context, claim *ClaimHelper, opts ...MoveOpt) *ClaimHelper
- func (h *OutputHonestHelper) StepClaimFails(ctx context.Context, claim *ClaimHelper, isAttack bool)
- func (h *OutputHonestHelper) StepFails(ctx context.Context, claimIdx int64, isAttack bool)
- type PreimageLoadCheck
- type Stepper
Constants ¶
This section is empty.
Variables ¶
var ( // TestKey is the same test key that geth uses TestKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") TestAddress = crypto.PubkeyToAddress(TestKey.PublicKey) )
Functions ¶
This section is empty.
Types ¶
type ClaimHelper ¶
type ClaimHelper struct { Index int64 ParentIndex int Position types.Position // contains filtered or unexported fields }
func (*ClaimHelper) AgreesWithOutputRoot ¶
func (c *ClaimHelper) AgreesWithOutputRoot() bool
func (*ClaimHelper) Attack ¶
func (c *ClaimHelper) Attack(ctx context.Context, value common.Hash, opts ...MoveOpt) *ClaimHelper
func (*ClaimHelper) Defend ¶
func (c *ClaimHelper) Defend(ctx context.Context, value common.Hash, opts ...MoveOpt) *ClaimHelper
func (*ClaimHelper) Depth ¶
func (c *ClaimHelper) Depth() types.Depth
func (*ClaimHelper) IsBottomGameRoot ¶
func (c *ClaimHelper) IsBottomGameRoot(ctx context.Context) bool
func (*ClaimHelper) IsMaxDepth ¶
func (c *ClaimHelper) IsMaxDepth(ctx context.Context) bool
func (*ClaimHelper) IsOutputRoot ¶
func (c *ClaimHelper) IsOutputRoot(ctx context.Context) bool
func (*ClaimHelper) IsOutputRootLeaf ¶
func (c *ClaimHelper) IsOutputRootLeaf(ctx context.Context) bool
func (*ClaimHelper) IsRootClaim ¶
func (c *ClaimHelper) IsRootClaim() bool
func (*ClaimHelper) RequireCorrectOutputRoot ¶
func (c *ClaimHelper) RequireCorrectOutputRoot(ctx context.Context)
func (*ClaimHelper) RequireDifferentClaimValue ¶
func (c *ClaimHelper) RequireDifferentClaimValue(other *ClaimHelper)
func (*ClaimHelper) RequireOnlyCounteredBy ¶
func (c *ClaimHelper) RequireOnlyCounteredBy(ctx context.Context, expected ...*ClaimHelper)
func (*ClaimHelper) WaitForCounterClaim ¶
func (c *ClaimHelper) WaitForCounterClaim(ctx context.Context, ignoreClaims ...*ClaimHelper) *ClaimHelper
WaitForCounterClaim waits for the claim to be countered by another claim being posted. It returns a helper for the claim that countered this one.
func (*ClaimHelper) WaitForCountered ¶
func (c *ClaimHelper) WaitForCountered(ctx context.Context)
WaitForCountered waits until the claim is countered either by a child claim or by a step call.
type ContractClaim ¶
type DefendClaimOpt ¶
type DefendClaimOpt func(cfg *defendClaimCfg)
func WithoutWaitingForStep ¶
func WithoutWaitingForStep() DefendClaimOpt
type DishonestHelper ¶
type DishonestHelper struct { *OutputGameHelper *OutputHonestHelper // contains filtered or unexported fields }
func (*DishonestHelper) ExhaustDishonestClaims ¶
func (d *DishonestHelper) ExhaustDishonestClaims(ctx context.Context, rootClaim *ClaimHelper)
ExhaustDishonestClaims makes all possible significant moves (mod honest challenger's) in a game. It is very inefficient and should NOT be used on games with large depths
type DisputeSystem ¶
type DisputeSystem interface { L1BeaconEndpoint() string NodeEndpoint(name string) string NodeClient(name string) *ethclient.Client RollupEndpoint(name string) string RollupClient(name string) *sources.RollupClient L1Deployments() *genesis.L1Deployments RollupCfg() *rollup.Config L2Genesis() *core.Genesis AdvanceTime(time.Duration) }
type ErrWithData ¶
type ErrWithData interface {
ErrorData() interface{}
}
type FactoryHelper ¶
type FactoryHelper struct { T *testing.T Require *require.Assertions System DisputeSystem Client *ethclient.Client Opts *bind.TransactOpts PrivKey *ecdsa.PrivateKey FactoryAddr common.Address Factory *bindings.DisputeGameFactory }
func NewFactoryHelper ¶
func NewFactoryHelper(t *testing.T, ctx context.Context, system DisputeSystem) *FactoryHelper
func (*FactoryHelper) CreateBisectionGameExtraData ¶
func (h *FactoryHelper) CreateBisectionGameExtraData(l2Node string, l2BlockNumber uint64, cfg *GameCfg) []byte
func (*FactoryHelper) GetL1Head ¶
func (h *FactoryHelper) GetL1Head(ctx context.Context, game contracts.FaultDisputeGameContract) eth.BlockID
func (*FactoryHelper) PreimageHelper ¶
func (h *FactoryHelper) PreimageHelper(ctx context.Context) *preimage.Helper
func (*FactoryHelper) StartChallenger ¶
func (h *FactoryHelper) StartChallenger(ctx context.Context, name string, options ...challenger.Option) *challenger.Helper
func (*FactoryHelper) StartOutputAlphabetGame ¶
func (h *FactoryHelper) StartOutputAlphabetGame(ctx context.Context, l2Node string, l2BlockNumber uint64, rootClaim common.Hash, opts ...GameOpt) *OutputAlphabetGameHelper
func (*FactoryHelper) StartOutputAlphabetGameWithCorrectRoot ¶
func (h *FactoryHelper) StartOutputAlphabetGameWithCorrectRoot(ctx context.Context, l2Node string, l2BlockNumber uint64, opts ...GameOpt) *OutputAlphabetGameHelper
func (*FactoryHelper) StartOutputCannonGame ¶
func (h *FactoryHelper) StartOutputCannonGame(ctx context.Context, l2Node string, l2BlockNumber uint64, rootClaim common.Hash, opts ...GameOpt) *OutputCannonGameHelper
func (*FactoryHelper) StartOutputCannonGameWithCorrectRoot ¶
func (h *FactoryHelper) StartOutputCannonGameWithCorrectRoot(ctx context.Context, l2Node string, l2BlockNumber uint64, opts ...GameOpt) *OutputCannonGameHelper
func (*FactoryHelper) WaitForBlock ¶
func (h *FactoryHelper) WaitForBlock(l2Node string, l2BlockNumber uint64, cfg *GameCfg)
type GameOpt ¶
type GameOpt interface {
Apply(cfg *GameCfg)
}
func WithFutureProposal ¶
func WithFutureProposal() GameOpt
func WithUnsafeProposal ¶
func WithUnsafeProposal() GameOpt
type MoveOpt ¶
type MoveOpt interface {
Apply(cfg *moveCfg)
}
func WithIgnoreDuplicates ¶
func WithIgnoreDuplicates() MoveOpt
func WithTransactOpts ¶
func WithTransactOpts(Opts *bind.TransactOpts) MoveOpt
type Mover ¶
type Mover func(parent *ClaimHelper) *ClaimHelper
Mover is a function that either attacks or defends the claim at parentClaimIdx
type OutputAlphabetGameHelper ¶
type OutputAlphabetGameHelper struct {
OutputGameHelper
}
func (*OutputAlphabetGameHelper) CreateDishonestHelper ¶
func (g *OutputAlphabetGameHelper) CreateDishonestHelper(ctx context.Context, l2Node string, defender bool) *DishonestHelper
func (*OutputAlphabetGameHelper) CreateHonestActor ¶
func (g *OutputAlphabetGameHelper) CreateHonestActor(ctx context.Context, l2Node string) *OutputHonestHelper
func (*OutputAlphabetGameHelper) StartChallenger ¶
func (g *OutputAlphabetGameHelper) StartChallenger( ctx context.Context, l2Node string, name string, options ...challenger.Option, ) *challenger.Helper
type OutputCannonGameHelper ¶
type OutputCannonGameHelper struct {
OutputGameHelper
}
func (*OutputCannonGameHelper) ChallengeToPreimageLoad ¶
func (g *OutputCannonGameHelper) ChallengeToPreimageLoad(ctx context.Context, outputRootClaim *ClaimHelper, challengerKey *ecdsa.PrivateKey, preimage utils.PreimageOpt, preimageCheck PreimageLoadCheck, preloadPreimage bool)
ChallengeToPreimageLoad challenges the supplied execution root claim by inducing a step that requires a preimage to be loaded It does this by: 1. Identifying the first state transition that loads a global preimage 2. Descending the execution game tree to reach the step that loads the preimage 3. Asserting that the preimage was indeed loaded by an honest challenger (assuming the preimage is not preloaded) This expects an odd execution game depth in order for the honest challenger to step on our leaf claim
func (*OutputCannonGameHelper) CreateHonestActor ¶
func (g *OutputCannonGameHelper) CreateHonestActor(ctx context.Context, l2Node string, options ...challenger.Option) *OutputHonestHelper
func (*OutputCannonGameHelper) CreateStepLargePreimageLoadCheck ¶
func (g *OutputCannonGameHelper) CreateStepLargePreimageLoadCheck(ctx context.Context, sender common.Address) PreimageLoadCheck
func (*OutputCannonGameHelper) CreateStepPreimageLoadCheck ¶
func (g *OutputCannonGameHelper) CreateStepPreimageLoadCheck(ctx context.Context) PreimageLoadCheck
func (*OutputCannonGameHelper) StartChallenger ¶
func (g *OutputCannonGameHelper) StartChallenger(ctx context.Context, name string, options ...challenger.Option) *challenger.Helper
func (*OutputCannonGameHelper) VerifyPreimage ¶
func (g *OutputCannonGameHelper) VerifyPreimage(ctx context.Context, outputRootClaim *ClaimHelper, preimageKey preimage.Key)
type OutputGameHelper ¶
type OutputGameHelper struct { T *testing.T Require *require.Assertions Client *ethclient.Client Opts *bind.TransactOpts PrivKey *ecdsa.PrivateKey Game contracts.FaultDisputeGameContract FactoryAddr common.Address Addr common.Address CorrectOutputProvider *outputs.OutputTraceProvider System DisputeSystem }
func NewOutputGameHelper ¶
func NewOutputGameHelper(t *testing.T, require *require.Assertions, client *ethclient.Client, opts *bind.TransactOpts, privKey *ecdsa.PrivateKey, game contracts.FaultDisputeGameContract, factoryAddr common.Address, addr common.Address, correctOutputProvider *outputs.OutputTraceProvider, system DisputeSystem) *OutputGameHelper
func (*OutputGameHelper) AvailableCredit ¶
func (*OutputGameHelper) ChallengeClaim ¶
func (g *OutputGameHelper) ChallengeClaim(ctx context.Context, claim *ClaimHelper, performMove Mover, attemptStep Stepper)
ChallengeClaim uses the supplied functions to perform moves and steps in an attempt to challenge the supplied claim. It is assumed that the claim being disputed is valid and that an honest op-challenger is already running. When the game has reached the maximum depth it calls the Stepper to attempt to counter the leaf claim. Since the output root is valid, it should not be possible for the Stepper to call step successfully.
func (*OutputGameHelper) ChallengePeriod ¶
func (g *OutputGameHelper) ChallengePeriod(ctx context.Context) uint64
ChallengePeriod returns the challenge period fetched from the PreimageOracle contract. The returned uint64 value is the number of seconds for the challenge period.
func (*OutputGameHelper) ChallengePeriodStartTime ¶
func (g *OutputGameHelper) ChallengePeriodStartTime(ctx context.Context, sender common.Address, data *types.PreimageOracleData) uint64
ChallengePeriodStartTime returns the start time of the challenge period for a given large preimage claim. If the returned start time is 0, the challenge period has not started.
func (*OutputGameHelper) CreditUnlockDuration ¶
func (g *OutputGameHelper) CreditUnlockDuration(ctx context.Context) time.Duration
func (*OutputGameHelper) DefendClaim ¶
func (g *OutputGameHelper) DefendClaim(ctx context.Context, claim *ClaimHelper, performMove Mover, Opts ...DefendClaimOpt) *ClaimHelper
DefendClaim uses the supplied Mover to perform moves in an attempt to defend the supplied claim. It is assumed that the specified claim is invalid and that an honest op-challenger is already running. When the game has reached the maximum depth it waits for the honest challenger to counter the leaf claim with step. Returns the final leaf claim
func (*OutputGameHelper) DisputeBlock ¶
func (g *OutputGameHelper) DisputeBlock(ctx context.Context, disputeBlockNum uint64) *ClaimHelper
DisputeBlock posts claims from both the honest and dishonest actor to progress the output root part of the game through to the split depth and the claims are setup such that the last block in the game range is the block to execute cannon on. ie the first block the honest and dishonest actors disagree about is the l2 block of the game.
func (*OutputGameHelper) DisputeLastBlock ¶
func (g *OutputGameHelper) DisputeLastBlock(ctx context.Context) *ClaimHelper
func (*OutputGameHelper) ExecDepth ¶
func (g *OutputGameHelper) ExecDepth(ctx context.Context) types.Depth
func (*OutputGameHelper) GetClaimValue ¶
func (*OutputGameHelper) GetL1Head ¶
func (g *OutputGameHelper) GetL1Head(ctx context.Context) eth.BlockID
func (*OutputGameHelper) L2BlockNum ¶
func (g *OutputGameHelper) L2BlockNum(ctx context.Context) uint64
func (*OutputGameHelper) LogGameData ¶
func (g *OutputGameHelper) LogGameData(ctx context.Context)
func (*OutputGameHelper) MaxClockDuration ¶
func (g *OutputGameHelper) MaxClockDuration(ctx context.Context) time.Duration
func (*OutputGameHelper) MaxDepth ¶
func (g *OutputGameHelper) MaxDepth(ctx context.Context) types.Depth
func (*OutputGameHelper) Resolve ¶
func (g *OutputGameHelper) Resolve(ctx context.Context)
func (*OutputGameHelper) ResolveClaim ¶
func (g *OutputGameHelper) ResolveClaim(ctx context.Context, claimIdx int64)
ResolveClaim resolves a single subgame
func (*OutputGameHelper) RootClaim ¶
func (g *OutputGameHelper) RootClaim(ctx context.Context) *ClaimHelper
func (*OutputGameHelper) SplitDepth ¶
func (g *OutputGameHelper) SplitDepth(ctx context.Context) types.Depth
func (*OutputGameHelper) StartingBlockNum ¶
func (g *OutputGameHelper) StartingBlockNum(ctx context.Context) uint64
func (*OutputGameHelper) Status ¶
func (g *OutputGameHelper) Status(ctx context.Context) gameTypes.GameStatus
func (*OutputGameHelper) StepFails ¶
func (g *OutputGameHelper) StepFails(ctx context.Context, claimIdx int64, isAttack bool, stateData []byte, proof []byte)
StepFails attempts to call step and verifies that it fails with ValidStep()
func (*OutputGameHelper) UploadPreimage ¶
func (g *OutputGameHelper) UploadPreimage(ctx context.Context, data *types.PreimageOracleData, privateKey *ecdsa.PrivateKey)
func (*OutputGameHelper) WaitForAllClaimsCountered ¶
func (g *OutputGameHelper) WaitForAllClaimsCountered(ctx context.Context)
func (*OutputGameHelper) WaitForChallengePeriodStart ¶
func (g *OutputGameHelper) WaitForChallengePeriodStart(ctx context.Context, sender common.Address, data *types.PreimageOracleData)
WaitForChallengePeriodStart waits for the challenge period to start for a given large preimage claim.
func (*OutputGameHelper) WaitForClaimAtDepth ¶
func (g *OutputGameHelper) WaitForClaimAtDepth(ctx context.Context, depth types.Depth)
func (*OutputGameHelper) WaitForClaimAtMaxDepth ¶
func (g *OutputGameHelper) WaitForClaimAtMaxDepth(ctx context.Context, countered bool)
func (*OutputGameHelper) WaitForClaimCount ¶
func (g *OutputGameHelper) WaitForClaimCount(ctx context.Context, count int64)
WaitForClaimCount waits until there are at least count claims in the game. This does not check that the number of claims is exactly the specified count to avoid intermittent failures where a challenger posts an additional claim before this method sees the number of claims it was waiting for.
func (*OutputGameHelper) WaitForCorrectOutputRoot ¶
func (g *OutputGameHelper) WaitForCorrectOutputRoot(ctx context.Context, claimIdx int64)
func (*OutputGameHelper) WaitForGameStatus ¶
func (g *OutputGameHelper) WaitForGameStatus(ctx context.Context, expected gameTypes.GameStatus)
func (*OutputGameHelper) WaitForInactivity ¶
func (g *OutputGameHelper) WaitForInactivity(ctx context.Context, numInactiveBlocks int, untilGameEnds bool)
func (*OutputGameHelper) WaitForL2BlockNumberChallenged ¶
func (g *OutputGameHelper) WaitForL2BlockNumberChallenged(ctx context.Context)
func (*OutputGameHelper) WaitForNewClaim ¶
func (*OutputGameHelper) WaitForNoAvailableCredit ¶
func (g *OutputGameHelper) WaitForNoAvailableCredit(ctx context.Context, addr common.Address)
func (*OutputGameHelper) WaitForPreimageInOracle ¶
func (g *OutputGameHelper) WaitForPreimageInOracle(ctx context.Context, data *types.PreimageOracleData)
func (*OutputGameHelper) WethBalance ¶
type OutputHonestHelper ¶
type OutputHonestHelper struct {
// contains filtered or unexported fields
}
func NewOutputHonestHelper ¶
func NewOutputHonestHelper(t *testing.T, require *require.Assertions, game *OutputGameHelper, contract contracts.FaultDisputeGameContract, correctTrace types.TraceAccessor) *OutputHonestHelper
func (*OutputHonestHelper) Attack ¶
func (h *OutputHonestHelper) Attack(ctx context.Context, claimIdx int64, opts ...MoveOpt)
func (*OutputHonestHelper) AttackClaim ¶
func (h *OutputHonestHelper) AttackClaim(ctx context.Context, claim *ClaimHelper, opts ...MoveOpt) *ClaimHelper
func (*OutputHonestHelper) CounterClaim ¶
func (h *OutputHonestHelper) CounterClaim(ctx context.Context, claim *ClaimHelper, opts ...MoveOpt) *ClaimHelper
func (*OutputHonestHelper) Defend ¶
func (h *OutputHonestHelper) Defend(ctx context.Context, claimIdx int64, opts ...MoveOpt)
func (*OutputHonestHelper) DefendClaim ¶
func (h *OutputHonestHelper) DefendClaim(ctx context.Context, claim *ClaimHelper, opts ...MoveOpt) *ClaimHelper
func (*OutputHonestHelper) StepClaimFails ¶
func (h *OutputHonestHelper) StepClaimFails(ctx context.Context, claim *ClaimHelper, isAttack bool)
type PreimageLoadCheck ¶
type PreimageLoadCheck func(types.TraceProvider, uint64) error