package host import ( "context" execlease "github.com/carlosframework/platform/internal/hostexec" "github.com/carlosframework/platform/internal/rootparticipation" "github.com/carlosframework/platform/internal/rootstate" ) func (h ClaimRootHTTP) executionAuthorityWithMigration(ctx context.Context, state rootstate.Store, q execlease.ExecutionRequest, peer execlease.ControllerProcess) (execlease.ExecutionAuthority, error) { census, err := (rootparticipation.Ledger{State: state}).Census() if err != nil { return execlease.ExecutionAuthority{}, err } if census.NeverEnrolled { return execlease.ExecutionAuthority{}, execlease.ErrState } a, err := h.executionAuthority(ctx, q, peer) if err != nil { return a, err } if a.Box != census.Box || a.Enrollment != census.Enrollment || (a.Migration != 0 && a.Migration != census.Migration) { return execlease.ExecutionAuthority{}, execlease.ErrState } a.Migration = census.Migration return a, nil }